【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » » 正文

爬虫日记---七日热点scrapy版

放大字体  缩小字体 发布日期:2020-08-15 03:43:14    浏览次数:15
导读

  受大牛们的鼓励,继2个熬夜的晚上终于做完scrapy版的“七日热点”。宝宝好累,做到凌晨,电脑差一点被收走。 赶紧开始记录。  Scrapy 是专门用来爬取网站数据的应用框架。不能直接用pycharm来创建一个scrapy的project。需要现在shell中写入scrapy startproject 项目名称。然后打开pycharm,就会生成类似于如下多个py

  受大牛们的鼓励,继2个熬夜的晚上终于做完scrapy版的“七日热点”。宝宝好累,做到凌晨,电脑差一点被收走。 赶紧开始记录。

  Scrapy 是专门用来爬取网站数据的应用框架。不能直接用pycharm来创建一个scrapy的project。需要现在shell中写入scrapy startproject 项目名称。然后打开pycharm,就会生成类似于如下多个py文件组成项目。

  具体每个py文件的功能可以查找相关资料。现在需要做的是在spiders目录下新建一个你的爬虫主的py文件。这就是你要写爬虫的主要地方。

  name=sevenday1是爬虫名字,要和上边的类“sevenday取不一样的名称,在main.py 会启动这个爬虫名称来运行爬虫

  类Selector是一个Scrapy的选择器。通过特定的XPath表达式来“选择” HTML文件中的某个部分。上边的例子通过xpath选取包含class=note-list的标签ul下的li标签。通过网页分析,datas是一个列表。不确定的可以在这里打印datas看一下。

  另外,Request还可以在请求下一页解析的时候,将本页的数据通过meta传递给下一页。meta是一个字典。里边通过key对应value来传递给下一个回调对象。

  yield item1提交最终的数据给items.py,如果还有数据在下一级网页,可以创建新的url,然后将item1的值赋予meta,继续请求新的url回调下一个parse_**

  由于打赏数据是异步加载,需要在界面中用正则表达式提取id,然后重新构造新的reward_rul,由于是json网页,所以需要用方法json.load解析网页,取出我们要rewards_count

  我在解析parse_info的时候,提取不出reward_count,生成的CSV文件是空的。于是打断点进行调试:运行debug时候,系统提示如下:

  于是 想起来可能是因为这个reward_url网页出错,但是里边的json数据还是有的,尝试改一下reward_url地址中?count=20改为.json如下:

 
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.31duo.com/news/show-456083.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4