如何在Scrapy上同步获取Request的Response对象?

eSP*_*iYa 2 python scrapy

我相信使用“回调”方法是异步的,如果我错了,请纠正我。我对 Python 还很陌生,所以请耐心等待。

不管怎样,我正在尝试制定一种方法来检查文件是否存在,这是我的代码:

def file_exists(self, url):
    res = False;
    response = Request(url, method='HEAD', dont_filter=True)
    if response.status == 200:
        res = True
    return res
Run Code Online (Sandbox Code Playgroud)

我以为 Request() 方法会返回一个 Response 对象,但它仍然返回一个 Request 对象,为了捕获 Response,我必须为回调创建一个不同的方法。

有没有办法在调用 Response() 方法的代码块中获取 Response 对象?

小智 6

如果有人仍然对可能的解决方案 \xe2\x80\x93 感兴趣,我通过在 scrapy 函数“内部”执行“请求”请求来管理它,如下所示:

\n\n
import requests    \nrequest_object = requests.get(the_url_you_like_to_get)\nresponse_object = scrapy.Selector(request_object )\nitem[\'attribute\'] = response_object .xpath(\'//path/you/like/to/get/text()\').extract_first()\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后继续。

\n