属性错误:'Response'对象没有属性'css'



当我尝试这个时,我得到了一个Attribute Error : 'Response' object has no attribute 'css'

我尝试使用此代码:

response.css('h1.ctn-article-title::text').extract()

谁能帮忙?

我正在尝试从下面的代码中获取文本"更新初级保健",标题为:

更新初级保健 芝商所

我放置了我的整个代码:

response = requests.get(url, headers = headers)
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'requests' is not defined
import requests
response = requests.get(url, headers = headers)
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'url' is not defined
url = 'somethingurl'
response = requests.get(url, headers = headers)
response.css('h1.ctn-article-title::text').extract()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Response' object has no attribute 'css'
response.css('h1').extract()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Response' object has no attribute 'css'
response.css('h1.ctn-article-title::text').extract()

正如Tarun在评论中指出的那样:你正在混合scrapyrequests代码。

如果要从请求响应创建抓取响应,可以尝试:

from scrapy.http import TextResponse
import requests
url = 'http://stackoverflow.com'
resp = requests.get(url)
resp = TextResponse(body=resp.content, url=url)
resp.xpath('//div')
# works!

有关请求,请参阅文档。Response 和 scrapy.http.TextResponse 对象。

在这种情况下,发生错误的行需要CSSResponse对象而不是正常响应。尝试创建 CSSResponse 而不是正常的响应来解决错误。

你可以在这里得到它

更具体地说,请使用 HtmlResponse,因为您的响应将是一些 HTML 而不是纯文本。HtmlResponse 是 CSSResponse 的一个子类,因此它继承了缺少的方法。

在你的代码中添加这一行,它会正常工作 从任何其他包中删除请求的任何导入。

from  scrapy.http import Request

相关内容

  • 没有找到相关文章

最新更新