Scrapy框架的工作流程
时间: 2023-12-17 08:28:55 浏览: 91
Scrapy架构流程介绍.zip
Scrapy框架的工作流程如下:
1.引擎从调度器中获取一个待爬取的URL,并将该URL对应的请求交给下载器处理。
```python
def schedule(self, request, spider):
self.queue.push(request)
self._next_request(spider)
```
2.下载器将该请求对应的网页下载下来,并将下载结果封装成一个Response对象返回给引擎。
```python
def download_request(self, request, spider):
# ...
response = self._crawl(request, spider)
# ...
return response
```
3.引擎将该Response对象交给Spider模块进行解析。
```python
def _next_request(self, spider):
# ...
request = next(self.spider)
# ...
self.crawl(request, spider)
def crawl(self, request, spider):
# ...
deferred = self.downloader.download_request(request, spider)
deferred.addCallback(spider.parse)
# ...
```
4.Spider模块解析该Response对象,并从中提取出需要的数据,同时生成新的请求。
```python
def parse(self, response):
# ...
yield scrapy.Request(url, callback=self.parse)
# ...
```
5.引擎将新生成的请求交给调度器,重复上述过程,直到调度器中没有待爬取的URL。
阅读全文