我用CrawlSpider爬电商的网站分页时觉得反正可以url去重功能,索性把分页栏的每一页url都获取并发送请求获取相应,相信总会每次访问新一页的response后都会只拿以前每拿过的下一页url,以前都拿过的url通通不要,从而实现不断地获取下一页。
结果我很快被amazon打脸:
https://www.amazon.cn/s?k=%E6%99%BA%E8%83%BD%E6%89%8B%E8%A1%A8&page=2&__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&qid=1558952688&ref=sr_pg_2
https://www.amazon.cn/s?k=%E6%99%BA%E8%83%BD%E6%89%8B%E8%A1%A8&page=2&__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&qid=1558952682&ref=sr_pg_2
这2个url都能访问到同一个页面,但是url不同!!只有&qid=1558952682的地方不一样,去掉&qid=xxx也照样可以访问同一页面。而这2个都是第二页的url只是来自不同分页而已,结果就不一样了。所以我获取的分页url总是在第2,3,4或者1,3,4、3,4,5页等等徘徊,总之搞了好久都没能获取第五页往后的url。
总结:能获取下一页url就最好了,否则可能会被坑。