Python 官方文档:入门教程 => 点击学习
怎么在python中使用scrapy框架处理多页数据?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python的五大特点是什么python的五大特点:1.简单易学,开发程序时,
怎么在python中使用scrapy框架处理多页数据?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如c++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。
方法一:将每一页对应的url存放到爬虫文件的start_urls
问题:如果页数较多时,列表就会变得很大。
方法二:使用Request方法手动发起请求(推荐使用)
案例:爬取古诗文网每一页的古诗的标题
1、爬取所有页码数据
import scrapyclass GushiSpider(scrapy.Spider): name = 'gushi' start_urls = ['https://www.gushiwen.org/'] pageNum = 2 #pageNum为2,第一页已经爬取过了 url = 'Https://www.gushiwen.cn/default_%d.aspx' #每页的url是类似的 def parse(self, response): div_list = response.xpath('//div[@class="sons"]/div[1]/p[1]') print(str(len(div_list))+"首古诗") for div in div_list: title = div.xpath('./a/b/text()').extract() print(title) print("------------------------") # 爬取所有页码数据 if self.pageNum <= 10: #一共爬取10页(共10页) self.pageNum += 1 url = fORMat(self.url % self.pageNum) # 每一页的url和pageNum有关
2、使用Request方法向页面手动发起请求
# 手动发起请求: scrapy.Request(url,callback,meta) ## url是需要发起请求的url, ## callback参数的值是回调函数,即发起请求后需要调用哪一个方法 ## meta参数的值是一个 字典,表示的是向回调函数传递什么样的参数
3、向上面格式化的url发起请求,callback递归调用parse()方法,将得到的数据继续进行解析
yield scrapy.Request(url=url,callback=self.parse)
看完上述内容,你们掌握怎么在python中使用scrapy框架处理多页数据的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网Python频道,感谢各位的阅读!
--结束END--
本文标题: 怎么在python中使用scrapy框架处理多页数据
本文链接: https://www.lsjlt.com/news/272654.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0