接触了这么久的scrapy框架,你是否会疑惑,在scrapy底层,代码到底是怎么运行的呢?
原来由一个起始url,通过scrapy.Request()函数会默认封装为一个get请求对象,该对象触发找到引擎模块scrapy.engine,引擎模块指向调度模块scrapy.schedule,调度模块接收到后对start_urls列表进行有序排列,然后将信息返回给引擎,引擎转而启动下载模块进行数据的采集,采集好的数据会直接传给爬虫程序中的parse函数进行数据处理。scrapy框架默认为get请求,若要发起post请求,则需要研究start_request()函数,该函数返回的是请求对象,若重新返回,则可以自定义post请求对象,如下
# coding:utf-8
'''
关于scrapy框架的底层代码的了解
'''
import scrapy
class GetSpider(scrapy.Spider):
name='getspider'
allowed_domains=['baidu.com']
start_urls=['http://www.baidu.com']
def parse(self,response):
'''
请求的数据采集工作,有scrapy框架自动完成
爬虫【起始地址列表start_urls】->由scrapy.Request()封装为请求对象
->scrapy.enging引擎对象
->scrapy.schedule 调度模块
->scrapy.download下载模块
->