Web Scraper如何翻页

Python技术杂谈 2018-12-14 16:07:45 阅读(9798) 评论(2)

前情提要:前面两篇老猿简单给Web Scraper配置了一个可以抓取时光网电影热度排名的sitemap和讲解了Web Scraper的运行原理,算是普及了一下,各位看官跟着操作一篇,应该对Web Scraper和Start URL、Selector有个初步认识了吧。本篇开始就以问题形式来对Web Scraper进行深入讲解。

web scraper怎么翻页

上一篇我们配置的Sitemap,只能抓取第一页,不能翻页不能抓第二页,这篇就来聊下Web Scraper如何翻页。

实现翻页只需要修改”Start URL”就可以搞定。我们上一篇在Start URL里 直接填的是首页地址。如下图:

web scraper 翻页

因为这没有告诉Web Scraper如何访问第二页,第三页,所以要修改一下Start URL,Web Scraper规定了一个翻页规则的,有几种写法,要根据抓取网站的URL规律的写, 请看下面。

规则一:
第一页: ‘http://example.com/page/1’
第二页: ‘http://example.com/page/2’
第三页: ‘http://example.com/page/3’
如果要抓取网站的第一页,第二页,第三页是如上形式,那么Start URL翻页就写成 http://example.com/page/[1-3]
中括号里表示从第一页翻到第三页。

规则二:
第一页: ‘http://example.com/page/001’
第二页: ‘http://example.com/page/002’
第三页: ‘http://example.com/page/003’
Start URL翻页就写成 http://example.com/page/[001-3]
中括号里表示从001 翻3页到 003

规则三:
第一页: ‘http://example.com/page/0’
第二页: ‘http://example.com/page/10’
第三页: ‘http://example.com/page/20’
Start URL翻页就写成 http://example.com/page/[0-3:10]
中括号里表示从第1页开始 翻3三页,每页要乘10

Web scraper对这个规则三这种翻页方式的支持好像有问题,豆瓣影评是这种的URL格式,我测试过,翻页不成功。所以遇到这种翻页格式还是要用其它办法。

 

以上我们只举了翻3页的例子,如果你想抓50页,那就要把上面的3改成50了,提示你要手动翻一翻看看抓取的网站是否有50页,不要写超出了。

基于以上翻页规则,我们来看看时光网的URL是符号上面那个规则呢?
我们进入 欢迎首页,把页面拉到最下面,点击第二页,第三页看看它的URL规律情况,如下图:

翻页演示

 

第一页的URL是:
http://www.mtime.com/hotest/index.html
也可以看着URL是:
http://www.mtime.com/hotest/index-1.html
第二页是:
http://www.mtime.com/hotest/index-2.html
第三页是:
http://www.mtime.com/hotest/index-3.html
所以翻页规则符合上面的规则一,应该把Start URL改写成:http://www.mtime.com/hotest/index-[1-3].html
如果是翻50页,就是:
http://www.mtime.com/hotest/index-[1-50].html

Web Scraper翻页就是这样的,要修改Start URL。好了,现在你重新Create sitemap再像上一篇一样重新配置一次,试试看能不能翻页抓取了吧。

PS:当之前运行可以的翻页不起作用时,要去检查要抓取翻页URL是否变了,因为对方网站改版,页面优化之类的,可能会把URL给改变了,这时要重新去找翻页规律。

 

上面介绍的是根据URL的规则来翻页,有些网页翻页是ajax的,这种方法就行不通了,需要使用另外的翻页方法,下一篇再来介绍。

 

Web Scraper系列文章:

Web Scraper教程

Web Scraper配置方法

Web Scraper工作原理

Web Scraper如何翻页

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

  • 上一篇 >:
  • 下一篇 >:
  • 说点什么吧...

    1. 1楼
      花不凡 6年前 (2019-06-16)

      豆瓣的翻页有规律可循,[0-50:25]这种即可

    2. 2楼
      匿名 6年前 (2019-07-02)

      在豆瓣top250排行榜中,翻页url为:https://movie.douban.com/top250?start=0;其中需要加上start参数。而过滤条件为:https://movie.douban.com/top250?start=[0-249:25];可能有不同得答案,但经过测试,这条规则是可以正确实现翻页得。