为了爬取全部详情页,一般从列表页开始多线程并发爬取,并发线程数受网络环境(一般表现为超时)和服务器性能影响(一般表现为http响应500)。
1、第一页作为抓取入口url,解析出详情页url及其他分页url,详情页优先爬,避免缓存的url过多;
2、查看总共多少页(如果分页中没有总共多少页,通过总记录数/每页记录数计算出多少页),爬取过程不解析分页url,一次性添加全部分页url, 当然也可以在爬第一页的时候添加全部分页,每爬完一页解析出详情页url,详情页优先爬;
3、有些网站在详情页提供上一条、下一条功能,可以第一条、最后一条详情页作为入口,通过上一条,下一条爬全部,线程多可以增加几条中间的详情页。
爬取分全量爬取和增量爬取,对于数据量大的短时间内无法爬完,可能一天只爬了一部分,第二天ip就被封了,还得使用代理。研发阶段和系统发布之间有时间差问题,程序开发完的时候全量爬了数据,系统进入集成测试,可能一个月后发布;增量爬取如果按天增量,还需要考虑时间跨度较大(一个月)的爬取方案。
时间: 2024-11-16 07:34:50