scrapy利用crawlspider爬取全站数据最全实例

2022-10-1820:45:42后端程序开发Comments741 views字数 596阅读模式

以一个案例练习加深我们的scrapy利用crawlspider爬取全站数据的过程,以及在爬取过程中,怎么同时解析列表页以及详情页面,并提交给item。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

1.打开爬虫文件,设置请求。

我们设置好起始网址的URL,并在Rule中设置好allow的正则以便我们能爬取到翻页网址文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

2.解析数据

这一步,与之前解析数据方法是一样的,同样根据请求的数据用xpath进行解析,获取我们想要的标题信息。不同之处在于,我们一般情况下回解析出两个数据,分别是详情页的URL和标题,其中详情页面的URL作为再次发起请求的网址,但是用crawlspider因为无法手动发请求,因此我们只解析出标题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

3.对详情页发起请求

上一步我们说道crawlspider因为无法手动发请求,那么怎么发起请求,获得详情页的数据信息呢?跟翻页发起请求的方法一样,我们通过Rule中设置好allow来获取请求数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

4.对详情页解析数据

根据我们上一步发起的请求,我们需要自定义解析详情页的数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

5.在item中定义属性值

由于我们并没有手动发送请求,因此不能将解析的两处数据放在一起,一起提交给item,因此我们需要自定义一个item方法同第一个item类似文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

6.将解析数据封装到item中并提交给管道

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

7.管道的设置

由于我们上一步解析的两个数据都是item,因此管道无法判断哪个item应该输出的内容,因此我们通过item的名称进行判断:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

8.开启管道并运行

scrapy利用crawlspider爬取全站数据最全实例scrapy利用crawlspider爬取全站数据最全实例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28359.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/28359.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定