如何用Selenium Chromedriver和谷歌获取10万+新闻URL用于数据分析?
大规模新闻URL采集解决方案及ct24站点专属方案
一、通用采集优化方案
1. 替代Selenium解决崩溃与断点续爬问题
- 弃用Selenium反复加载更多的模式,改用
requests搭配Playwright/Pyppeteer:这两个工具轻量化且支持无头模式,资源占用远低于Selenium,大幅降低浏览器崩溃概率。 - 实现断点续爬:将已采集的URL/文章ID存入SQLite或本地CSV文件,每次启动爬虫前读取已采集数据,跳过重复项;爬取过程中每100-500条批量写入一次,避免进程中断丢失数据。
2. 规避谷歌反爬
- 优先直接从目标网站获取URL:优先查找站点地图(Sitemap)、官方API或归档页面,完全绕过搜索引擎。
- 若必须用搜索引擎:拆分任务为小批次,每批次间隔10-30秒随机延迟,使用住宅代理IP轮换,随机切换真实浏览器的User-Agent、Referer等请求头,避免同一IP/账号连续大量请求。
二、ct24.ceskatelevize.cz专属批量URL方案(已知文章ID)
1. 测试URL重定向规律,批量验证
- 先手动验证几个已知ID:尝试访问
https://ct24.ceskatelevize.cz/clanek/[文章ID],若网站自动重定向到完整的带分类和标题的URL,则批量生成该格式链接,用requests.head()请求验证状态码为200的即为有效URL(HEAD请求仅获取响应头,比GET更省资源)。
2. 调用站点内部API
- 打开浏览器开发者工具,访问任意文章页,查看XHR/Fetch请求,找到返回文章详情的API接口(通常包含文章ID参数)。例如可能存在
https://ct24.ceskatelevize.cz/api/article/[文章ID]这类接口,直接批量请求该接口,从返回的JSON数据中提取完整URL、分类及标题信息。
3. 爬取时间归档页面
- 访问站点的时间归档页(如
https://ct24.ceskatelevize.cz/archiv/2024),按年份-月份分页爬取所有文章链接,同时记录文章ID与对应完整URL。这种方式能确保获取的URL全有效,且覆盖2017-2024年所有内容,还能同步获取分类、标题信息。
内容的提问来源于stack exchange,提问作者Nic'n Sugar
相关产品推荐
相关产品推荐

