爬虫翻页技巧

在学习scrapy练习爬取网站内容的时候,经常会遇到翻页问题。今天把用过的翻页方法总结一下:

翻页人类操作一般有两种方法(1)点击下一页(2)输入页码,然后跳转。

那么对于机器

1、使用selenium库模拟

(1)模拟点击“下一页”按钮。使用selenium库模拟点击,这种方法就相当于我们点击“下一页”按钮,经过等待页面显示完全,抓取页面中需要的数据,然后再模拟点击,以此类推,直到抓取所有页码的数据。这种方法可以抓取少量的数据,这也是selenium库的一个缺点,就是抓取速度比较慢,一旦抓取大量数据很少用到这种。

(2)模拟输入页码,然后跳转。对于我们来说这样可能比较繁琐,但对于计算机却更直接。同样我们在对应的地方模拟输入“1,2,3……”这些数字,然后点击跳转,与第一条一样,也能实现翻页抓取数据。

2、拿到页码的链接,再做一次请求

因为每次翻页,对应的url是不一样的,我们可以分析该网页的不同页之间的url有什么不一样。就我目前遇到的两种说一下:

(1)页码在斜杠后面,如第一页:www.csdn.net/ai/1(链接自己瞎编的)这样我们可以对‘/’后面的数字进行一个循环,每次跳转到不同的页,然后进行抓取。

(2)不同页的链接要稍微复杂点,如第一页:www.scdn.net/ai-y1/,这种我们可以试着找到对应点击“下一页”的HTML代码里的href有没有对应的相对链接。如:/ai-y2/,有的话,我们只需要补齐成绝对链接,使用urljoin()方法,跳转到该页就能进行抓取了。

----更新----(2018.6.22)

3、当翻页url不变时,可以分析ajax请求,看看有没有变化。具体操作是打开浏览器‘检查’-->network-->js-->点击‘下一页’。然后观察有没有多出新的ajax请求,并分析该ajax请求里的request url 。例如:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值