scrapy基础流程

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=r'http://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处理(写入文件)

 

posted on 2019-07-31 13:01  南华  阅读(97)  评论(0编辑  收藏  举报