首页 > 其他 > 详细

scrapy基础流程

时间:2019-07-31 14:42:41      阅读:84      评论:0      收藏:0      [点我收藏+]

scrapy框架运行时基本流程:

  scrapy crawl 爬虫名

  在./biquge/biquge/spiders中找到爬虫名为指定爬虫名的爬虫类(一下简称本类);

  开始向本类中starts_urls中的网址发送请求(scrapy.Request);

  接收服务器的返回(response),调用parse方法处理(scrapy.Spider中);

  

  scrapy.spiders.CrawlSpider中重写了scrapy.Spider的parse方法:

    服务器的返回(Response)会返回给scrapy.spiders.Rule来处理;

    Rule可以接收一个正则表达式在Response中匹配满足表达式的网址,再次发送Request,返回的Response交由callback指定的函数去处理;

1  rules = (
2         Rule(LinkExtractor(allow=rhttp://www.xbiquge.la/10/10489/9687224.html), callback=parse_item, follow=True),
3     )

    

  ./biquge/biquge/items.py中编写想要存储的字段类(Item):

    在parse(scrapy.Spider)/parse_item(scrapy.CrawlSpider)中,一般会将从Response中解析(一般用xpath)出来的字段存储到Item结构中,并使用yield抛出;

  ./biquge/biquge/pippelines.py中可以编写存储逻辑(目前只知道这个作用,后续可能会有别的):

    抛出后的Item会交由pipelines.py中写好的管道类去处理,具体使用哪个Pipeline类在./biquge/biquge/settings.py文件中设置,数字越低,优先级越高;

    主要为process_item()函数,参数为接收到的item跟spider(默认,一般不需要更改)。

 

具体一点为:settings.py设置BiqugePipeline处理数据存储逻辑,

      BiqugeSpider中调用BiqugeItem存储数据(Item),

      BiqugeSpider抛出存储的数据(Item)给BiqugePipeline处理(写入文件)

 

scrapy基础流程

原文:https://www.cnblogs.com/nanhua097/p/11275387.html

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