怎么在python中使用scrapy框架处理多页数据

  介绍

怎么在python中使用scrapy框架处理多页数据?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

python的五大特点是什么

python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。

<强>方法一:将每一页对应的url存放到爬虫文件的start_urls

<强>问题:强如果页数较多时,列表就会变得很大。

<强>方法二:使用请求方法手动发起请求(推荐使用)

案例:爬取古诗文网每一页的古诗的标题

<强> 1,爬取所有页码数据

 import  scrapy
  
  class  GushiSpider (scrapy.Spider):
  ,,,name =, & # 39;固始县# 39;
  ,,,start_urls =, (& # 39; https://www.gushiwen.org/& # 39;)
  
  ,,,pageNum =, 2, # pageNum为2,第一页已经爬取过了,
  ,,,url =, & # 39; https://www.gushiwen.cn/default_%d.aspx& # 39;, #每页的url是类似的
  ,,,,
  ,,,def 解析(自我,,反应):
  ,,,,,,,div_list =, response.xpath (& # 39;//div [@class=皊ons"]/div [1]/p [1] & # 39;)
  ,,,,,,,印刷(str (len (div_list)) +“首古诗“)
  ,,,,,,,for  div 拷贝div_list:
  ,,,,,,,,,,,title =, div.xpath (& # 39;。/a/b/text () & # 39;) .extract ()
  ,,,,,,,,,,,印刷(标题)
  ,,,,,,,印刷(“- - - - - - - - - - - - - - - - - - - - - - - -“)
  
  ,,,,,,,#,爬取所有页码数据,,,,
  ,,,,,,,if  self.pageNum  & lt;=, 10:,一号共爬取10页(共10页)
  ,,,,,,,,,,,self.pageNum  +=1
  ,,,,,,,,,,,url =,格式(self.url  %, self.pageNum),,, #,每一页的url和pageNum有关

<强> 2,使用请求方法向页面手动发起请求

<>之前,,,,,,,,,#,手动发起请求:,scrapy.Request(回调url,元)   ,,,,,,,,,,,# #,url是需要发起请求的网址,   ,,,,,,,,,,,# #,回调参数的值是回调函数,即发起请求后需要调用哪一个方法   ,,,,,,,,,,,# #,元参数的值是一个,字典,表示的是向回调函数传递什么样的参数

<强> 3,向上面格式化的网址发起请求,回调函数递归调用parse()方法,将得到的数据继续进行解析

<>之前,油品收率scrapy.Request (url=url,回调=self.parse)

看完上述内容,你们掌握怎么在python中使用scrapy框架处理多页数据的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

怎么在python中使用scrapy框架处理多页数据