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

如何爬取无分页、点击Load more(Ajax)加载内容的站点

爬取目标站点全量内容的可行方案

方案1:使用浏览器自动化工具模拟交互(最省心,门槛最低)

  • 工具选型:可选用 Selenium、Playwright 这类支持JS渲染、自动管理Cookie的浏览器自动化库,无需手动处理复杂的JS逻辑和Cookie校验
  • 核心实现逻辑:
    1. 初始化浏览器实例,支持开启无头模式减少资源占用
    2. 访问目标页面 https://www.eventsuche.info/de/eventsuche-innsbruck/1-0.html,等待页面初始内容加载完成
    3. 循环定位页面上的「more」按钮,判断按钮是否处于可点击状态:
      • 可点击时触发点击操作,设置显式等待等待新内容渲染完成后再执行下一轮判断
      • 按钮消失/置灰不可点击时,说明所有内容已经加载完成,终止循环
    4. 提取当前页面所有已渲染的元素内容即可
  • 注意:每次点击后预留1-2秒的间隔,避免请求频率过高触发反爬机制

方案2:逆向前端JS加载逻辑(效率最高,适合批量爬取)

  • 实现思路:点击「more」按钮时前端必然会向后端请求新数据,哪怕没有公开的分页接口,也可以通过抓包还原请求逻辑
  • 操作步骤:
    1. 打开浏览器F12开发者工具的「网络」面板,过滤Fetch/XHR类型的请求
    2. 手动点击一次「more」按钮,查看面板中新增的请求,记录请求URL、请求头、请求参数、响应格式
    3. 排查请求依赖的Cookie生成逻辑,确认是首次访问页面自动生成还是有额外的JS生成逻辑
    4. 还原请求规则后,直接用requests、aiohttp这类HTTP请求库批量模拟请求即可,无需启动浏览器,爬取效率远高于自动化方案
  • 注意:部分站点的请求参数可能存在加密、时效限制,需要额外适配参数生成逻辑

方案3:JS渲染服务方案(适合集成到现有爬虫框架)

如果本身使用Scrapy这类爬虫框架,可以对接 Splash 这类JS渲染服务,在服务端完成页面渲染、模拟点击操作,直接返回渲染完成的页面源码进行解析

合规提醒

  • 爬取前请确认站点的robots.txt规则,控制爬取频率避免对站点服务器造成额外压力,爬取的内容需遵守相关版权规定,不得用于违规用途

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:09:03