scrapy process_request里更改请求的url
在Scrapy的process_request方法中更改请求的URL,可以通过创建新的Request对象并返回来实现。以下是一个示例代码:
import scrapy
class MySpider(scrapy.Spider):
name = 'my_spider'
start_urls = ['http://example.com']
def parse(self, response):
# 在解析响应时更改请求的URL
new_url = 'http://example.com/new_url'
yield scrapy.Request(url=new_url, callback=self.parse_new_url)
def parse_new_url(self, response):
# 解析新URL的响应
pass
def process_request(self, request, spider):
# 在请求发送之前更改请求的URL
if request.url == 'http://example.com':
new_url = 'http://example.com/modified_url'
return scrapy.Request(url=new_url, callback=request.callback, headers=request.headers, meta=request.meta)
return None
在上面的代码中,process_request方法被覆盖,并且在该方法中检查请求的URL是否为http://example.com,如果是,则创建一个新的Request对象,并将其返回。这样,原始请求的URL将被更改为http://example.com/modified_url
原文地址: http://www.cveoy.top/t/topic/irmM 著作权归作者所有。请勿转载和采集!