在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

scrapy process_request里更改请求的url

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

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