前言
上篇文章中遇到了一个问题,就是在 process_request 函数中返回 request 对象导致爬虫退出的问题,这篇文章来解释下。
环境搭建
为了弄清楚这个问题,首先搭建一个可以运行 scrapy 的环境,新建一个 scrapy 项目,scrapy startproject testscrapy
,之后添加一个名为 testscrapy 的爬虫,代码为:
import scrapy as scrapy
from scrapy import Request
class TestScrapy(scrapy.Spider):
name = 'testscrapy'
def start_requests(self):
# 使用http方便抓包
yield Request(url='http://httpbin.org', callback=self.parse)
def parse(self, response, **kwargs):
print(response.status)
print(response.xpath('//title/text()').get())
并且在设置中开启下载中间件,运行下爬虫没有问题环境就搭建好了。
问题原因
首先以正常模式运行爬虫,没有问题,可以正常打印状态码和 title。