使用Python BeautifulSoup爬取AI事件库特定标签遇阻求助
解决AI事件详情URL爬取空列表问题
问题根源
该网站采用动态JavaScript渲染,页面内容是前端通过异步请求加载的,直接请求静态HTML无法获取到目标元素,所以会返回空列表。
具体解决方法
方法1:用浏览器自动化工具模拟加载
这类工具能模拟真实浏览器的渲染过程,等动态内容加载完成后再抓取,以Playwright为例:
- 先安装依赖:
pip install playwright playwright install chromium - 示例代码:
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto("https://incidentdatabase.ai/apps/discover?display=details&page=1") # 替换成你截图中标注元素的实际选择器,比如类名+标签组合 page.wait_for_selector(".incident-card a") links = page.query_selector_all(".incident-card a") detail_urls = [link.get_attribute("href") for link in links] print(detail_urls) browser.close()
方法2:抓包直接调用API接口
打开浏览器开发者工具(F12)切换到Network标签,刷新页面后找XHR/Fetch类型的请求:
- 这类请求通常返回JSON格式的事件数据,里面会包含每条事件的详情ID或完整URL
- 拿到API地址后,用
requests直接请求接口解析JSON,比浏览器自动化效率更高
注意事项
- 先查看网站的
robots.txt确认爬取合规性 - 控制请求频率,避免触发反爬限制
内容的提问来源于stack exchange,提问作者Akshat
相关产品推荐
相关产品推荐

