首页 > 其他 > 详细

基于Scrapy全站数据的爬取

时间:2021-04-25 23:33:35      阅读:24      评论:0      收藏:0      [点我收藏+]

-基于Spider的全站数据爬取

  -就是将网站中某个板块下的全部页码对应的页面数据进行爬取。

  -需求:爬取糗百中所有的作者和评论

  -实现方式:

    -将所有页面的url添加到start_urls列表(不推荐)

    -自行手动进行请求发送(推荐)

 

      -手动请求发送:

 

        -yield scraoy.Request(url,callback) :callback专门用做数据解析

 

只需在博客中的第一页完成后,再自行手动进行请求发送。第一爬取方法的链接:python之scrapy框架(一) - 努力爬行的小虫子 - 博客园 (cnblogs.com) 最后一部分关于scrapy持久化存储介绍了。

qiubai.py

 

 1 import scrapy
 2 from qiubaiPro.items import QiubaiproItem
 3 
 4 class QiubaiSpider(scrapy.Spider):
 5     name = qiubai
 6     # allowed_domains = [‘www.xxx.com‘]
 7     start_urls = [https://www.qiushibaike.com/text/]
 8 
 9     #生成一个通用的url模板(不可变)
10     url = https://www.qiushibaike.com/text/page/%d/
11     page_num = 2
12 
13     def parse(self, response):
14         # 解析:作者的名称+段子的内容
15         div_list = response.xpath(//div[@class="col1 old-style-col1"]/div)
16         # print(len(div_list))
17         all_data = []  # 存储所有解析到的数据
18         for div in div_list:
19             # xpath 返回的是列表,但是列表元素一定是Selector类型的对象
20             # extract可以将Selector对象中data参数存储的字符串提取出来
21             author = div.xpath(./div[1]/a[2]/h2/text() | ./div[1]/span/h2/text())[0].extract()
22             # 列表调用了extract之后,则表示将列表中每一个Selector对象中data对应的字符串提取了出来
23             content = div.xpath(./a[1]/div/span//text()).extract()
24             # 将列表转化成字符串
25             content = ‘‘.join(content)
26 
27             item = QiubaiproItem()
28             item[author] = author
29             item[content] = content
30 
31             yield item  #将item提交给了管道
32         print(第%d页正在爬取...% self.page_num)
33         if self.page_num <= 13:
34             new_url = format(self.url%self.page_num)
35             self.page_num += 1
36             #手动请求发送:callback回调函数是专门用作于数据解析
37             yield scrapy.Request(url=new_url , callback=self.parse)

 

 

最后数据通过管道保存到了mysql数据库中,我们可以通过navicat这个数据库管理系统可以看到保存了1037条记录

技术分享图片

 

基于Scrapy全站数据的爬取

原文:https://www.cnblogs.com/industrial-fd-2019/p/14702313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!