gpt4 book ai didi

python - Scrapy Middleware 忽略 URL 并防止抓取

转载 作者:太空狗 更新时间:2023-10-30 00:53:52 26 4
gpt4 key购买 nike

如果 url 包含“https”,我有一个中间件会 [引发 IgnoreRequests()]。

class MiddlewareSkipHTTPS(object):
def process_response(self, request, response, spider):
if (response.url.find("https") > -1):
raise IgnoreRequest()
else:
return response

enter image description here

有没有办法完全阻止 scrapy 对 HTTPS url 执行 GET 请求?在没有 [IgnoreRequests()] 的情况下,我得到了相同的 response_bytes/response_count 值和我的代码片段。我正在寻找零值并跳过抓取 url。我不希望 scrapy 从 https 页面抓取/下载所有字节,只需转到下一个 url。

注意:必须是一个中间件,不要使用蜘蛛嵌入的规则。有数百个爬虫,想整合逻辑。

最佳答案

不要使用process_response,它会在已经发出请求后调用。

你需要使用

def process_request(request, spider):
request.url # URL being scraped

此方法在实际发出请求之前调用。

看这里

https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#scrapy.downloadermiddlewares.DownloaderMiddleware.process_request

关于python - Scrapy Middleware 忽略 URL 并防止抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43179617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com