资讯专栏INFORMATION COLUMN

Scrapy爬取豆瓣读书全站

CoderStudy / 401人阅读

Scrapy爬取豆瓣读书全站 分析网页

首先打开豆瓣读书中的分类浏览,可以看到其中有很多的分类

豆瓣应该是一个比较好爬的网站,所有的数据都不是ajax加载的,我们打开谷歌的F12或者是火狐的FireBug可以很轻松的找到每一个分类的链接

这里我们使用scrapy中的一个linkextractors库,这个库的作用是会根据提供的限制,自动爬取和深入每一个页面并且提取需要的链接,如果想要找到每一个分类的url,只需Rule(LinkExtractor(allow="/tag/",restrict_xpaths="//div[@class="article"]"),follow=True),这里的allow是一个正则表达式,用来筛选分类url,restrict_xpaths是限制在哪个结构中筛选url,这里限制的是在

这个盒模型中,follow表示是否深入,这里当然是要深入,这里就能得到每一个分类url了,自己可以在回调函数中测试下,输入所得的url,可以使用respose.url

得到所有的分类url,就可以继续深入到每一步作品所在的页面了,如下图!


但是我们需要不止是这一页,我们要爬的时全站,因此这里必须实现翻页,我们可以看到页面底部清楚的写着下一页,我们通过解析页面同样可以得到url,如下图所示


可以看到所有的url的规则,我们就可以用正则表达式限制,以获取我们的需要,我们可以写出翻页的代码

Rule(LinkExtractor(allow="?start=d+&type=",restrict_xpaths="//div[@class="pa>ginator"]"),follow=True),

最后一步就是打开每一部书的网页得到所需的信息了,我们就可以通过这里通过解析网页还是可以很清楚的知道url,这里就不再详细的说怎么解析了,这里可以看到所有的url都在li标签中,如下图


我们打开li标签可以很清楚的看大url的规律,因此这里还是用到上面说的库解析深入,连同上面的代码如下

Rule(LinkExtractor(allow="/tag/",restrict_xpaths="/ /div[@class="article"]"),follow=True),#第一步
Rule(LinkExtractor(allow="?start=d+&type=",restrict_xpaths="//div[@class="pa>ginator"]"),follow=True),  #第二步翻翻页
Rule(LinkExtractor(allow="/subject/d+/$",restrict_>xpaths="//ul[@class="subject-list"]"),callback="parse_item")#得到所需网页的url

到了这里总算是大功告成了,下面就需要解析自己的所需要的信息了,这里附上网页


下面就是写自己解析代码了,这里就不需要详细的说了,详细内容请看源码,值得注意的是爬取的网页速度不要太快,豆瓣会禁IP的,这里可以采用一些反爬虫措施,如请求头的更换,ip地址的更换,下一篇会详细解说。

参考文档:

scrapy中文文档

最后附上本人的github地址,不要忘了给个star哦

本人博客地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38558.html

相关文章

  • 23个Python爬虫开源项目代码,包含微信、淘宝、豆瓣、知乎、微博等

    摘要:今天为大家整理了个爬虫项目。地址新浪微博爬虫主要爬取新浪微博用户的个人信息微博信息粉丝和关注。代码获取新浪微博进行登录,可通过多账号登录来防止新浪的反扒。涵盖链家爬虫一文的全部代码,包括链家模拟登录代码。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天为大家整...

    jlanglang 评论0 收藏0
  • 零基础如何学爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • Scrapy学习(三) 爬取豆瓣图书信息

    摘要:因为暂时还没有学到如何模拟登陆,所以我就先抓像豆瓣这样不需要登陆的网站上的内容。其中会回调函数,用是因为豆瓣图书并不是格式一致的。只需要在中设置项目代码地址豆瓣图书爬虫 前言 Scrapy学习(一) 安装 Scrapy学习(二) 入门 有了前两篇的基础,就可以开始互联网上爬取我们感兴趣的信息了。因为暂时还没有学到如何模拟登陆,所以我就先抓像豆瓣这样不需要登陆的网站上的内容。我的开发...

    Tony_Zby 评论0 收藏0
  • scrapy入门教程——爬取豆瓣电影Top250!

    摘要:注意爬豆爬一定要加入选项,因为只要解析到网站的有,就会自动进行过滤处理,把处理结果分配到相应的类别,但偏偏豆瓣里面的为空不需要分配,所以一定要关掉这个选项。 本课只针对python3环境下的Scrapy版本(即scrapy1.3+) 选取什么网站来爬取呢? 对于歪果人,上手练scrapy爬虫的网站一般是官方练手网站 http://quotes.toscrape.com 我们中国人,当然...

    senntyou 评论0 收藏0
  • scrapy爬取豆瓣Top250电影

    摘要:这次我们爬取的内容准备步骤找到格式网页中需要爬取的数据的例如我们需要爬取图片的这里用的是不会用的同学请百度然后我们开始建立工程打开然后在你想要建立工程的目录下面输入就会自动建立一个工程然后去根目录建立一个去这个目录里建立一个注意这里的主爬虫 这次我们爬取的内容 showImg(https://segmentfault.com/img/bVSirX?w=1021&h=521); 准备步骤...

    codergarden 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<