scrapy 如何在scrappy中使用python请求?

c9x0cxw0  于 2023-01-20  发布在  Python
关注(0)|答案(3)|浏览(162)

我尝试使用requests获取一个页面,然后将响应对象传递给解析器,但是遇到了一个问题:

def start_requests(self):
    yield self.parse(requests.get(url))
def parse(self, response):
  #pass

builtins.AttributeError:“generator”对象没有属性“dont_filter”

ep6jt1vc

ep6jt1vc1#

首先需要下载页面的响应,然后将该字符串转换为HtmlResponse对象

from scrapy.http import HtmlResponse
resp = requests.get(url)

response = HtmlResponse(url="", body=resp.text, encoding='utf-8')
fslejnso

fslejnso2#

你需要做的是
1.获取带有python请求的页面,并将其保存到不同于Scrapy response的变量。
r =请求.获取(url)
1.用你的python请求文本替换scrappy响应正文。
响应=响应.替换(正文= r.文本)
现在你有了Scrapy响应对象,其中包含了所有来自python请求的数据。

moiiocjp

moiiocjp3#

yields返回一个生成器,以便在请求获取数据之前对其进行迭代,您可以删除yield,它应该可以工作。

def start_requests(self):
    self.parse(requests.get(url))
def parse(self, response):
    #pass

相关问题