在 Scrapy 中,'_parse()' 函数是由 Scrapy 框架自动调用的。当定义了一个 Spider 类,并且该类继承自 scrapy.Spider,Scrapy 会自动调用该类的 start_requests() 方法获取初始的请求,并将这些请求交给 Scrapy 引擎处理。

在 start_requests() 方法中,可以通过 yield 关键字返回一个或多个 Request 对象,这些请求对象会被 Scrapy 引擎调度并发送给网站服务器。当服务器响应这些请求时,Scrapy 引擎会将响应交给 Spider 类中的 parse() 方法进行处理。

parse() 方法是默认的回调函数,用于处理服务器响应的数据。在 parse() 方法中,可以通过解析响应的内容提取所需的数据,并通过 yield 关键字返回 Item 对象或者新的 Request 对象。如果返回的是 Item 对象,表示提取的数据项;如果返回的是新的 Request 对象,表示需要继续爬取其他页面。

当 Scrapy 引擎收到 parse() 方法返回的新的 Request 对象时,会将这些请求交给调度器再次发送给服务器。当服务器响应这些请求时,Scrapy 引擎会再次调用 parse() 方法进行处理。这样形成了一个爬取-解析-爬取的循环,直到没有新的请求或者达到爬取的限制条件为止。

需要注意的是,如果不想使用默认的 parse() 方法作为回调函数,可以在定义 Spider 类时自定义其他的回调函数,并在 start_requests() 方法中返回 Request 对象时通过 callback 参数指定回调函数的名称。

Scrapy 中 _parse() 函数的工作原理

原文地址: https://www.cveoy.top/t/topic/p3d5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录