You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

爬取Angel.co初创企业列表数据失败,求可行解决方案

问题核心原因
  • Angel.co的初创企业列表是前端JavaScript动态渲染生成的,电子表格自带的IMPORTXML、IMPORTHTML仅支持读取静态HTML内容,无法执行JS加载动态数据,因此会返回空结果。
  • 你编写的Python代码存在两处核心错误:一是目标URL返回的是HTML文本而非JSON格式,直接调用.json()方法会直接抛出解析异常;二是用正则匹配HTML结构容错率极低,站点DOM结构稍有变动就会匹配失效。
  • 该站点有完善的反爬策略,普通静态请求很容易被拦截,返回空内容或人机验证页面。
可行实现方案

使用支持动态页面渲染的自动化浏览器工具Playwright实现数据抓取,操作步骤如下:

  1. 先安装依赖包:
pip install playwright pandas
playwright install chromium
  1. 运行以下代码即可抓取数据并导出为CSV格式的电子表格:
import pandas as pd
from playwright.sync_api import sync_playwright

# 目标页面地址
TARGET_URL = "https://angel.co/social-network-2"
result = []

with sync_playwright() as p:
    # 启动浏览器,可将headless改为False查看运行过程
    browser = p.chromium.launch(headless=True)
    page = browser.new_page(user_agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    page.goto(TARGET_URL, timeout=60000)
    # 等待列表元素加载完成
    page.wait_for_selector(".startup-item", timeout=30000)
    # 滚动加载全部数据(按需调整滚动次数)
    for _ in range(5):
        page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
        page.wait_for_timeout(2000)
    # 提取目标字段
    items = page.locator(".startup-item").all()
    for item in items:
        try:
            name = item.locator(".uni-link").inner_text().strip()
            location = item.locator(".location").inner_text().strip()
            category = item.locator(".category").inner_text().strip()
            result.append({
                "初创企业名称": name,
                "地点": location,
                "分类": category
            })
        except:
            continue
    browser.close()

# 导出为CSV文件
df = pd.DataFrame(result)
df.to_csv("angel_co_social_startups.csv", index=False, encoding="utf-8-sig")
注意事项
  • 代码中的选择器(.startup-item、.location等)可根据站点实际DOM结构调整,打开浏览器F12开发者工具即可查看元素类名。
  • 可适当调整滚动次数和等待时长,确保所有数据都加载完成。
  • 若遇到人机验证,可将headless改为False,手动完成验证后程序会继续执行。

内容的提问来源于stack exchange,提问作者vish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:57:07