难以将requests.models.Response转换为scrapy.selector.unified.selector

难以将requests.models.Response转换为scrapy.selector.unified.selector,scrapy,Scrapy,此代码 import requests url = 'https://docs.scrapy.org/en/latest/_static/selectors-sample1.html' response = requests.get(url) 获取一个requests.models.Response实例,我可以使用scrapy从中提取数据 from scrapy import Selector sel = Selector(response=response) sel.xpath('//div

此代码

import requests
url = 'https://docs.scrapy.org/en/latest/_static/selectors-sample1.html'
response = requests.get(url)
获取一个
requests.models.Response
实例,我可以使用scrapy从中提取数据

from scrapy import Selector
sel = Selector(response=response)
sel.xpath('//div')
访问网站的方式。这只是其中的一部分

response = requests.get('https://www.zhihu.com/api/v4/columns/wangzhenotes/items', headers=headers)
print(response.json())
通过这种方式,我从那个网站获得了内容

但是,相同的代码无法从响应实例提取数据

sel = Selector(response=response)
len(sel.xpath('//div'))
我刚得到0分。如何解决此问题?

此请求的结果

response=requests.get('https://www.zhihu.com/api/v4/columns/wangzhenotes/items,headers=headers)

是JSON对象,请确保它不包含任何div

要获得所需信息,必须解析该JSON

response = requests.get('https://www.zhihu.com/api/v4/columns/wangzhenotes/items', headers=headers)
data = response.json()['data']
然后,您需要循环查看
数据
列表,并获取所需的字段

同样,如果你想使用scrapy,你可以请求url
https://www.zhihu.com/api/v4/columns/wangzhenotes/items

然后在
parse
方法中将响应读取为JSON:


j_obj=json.load(response.body作为unicode())
sel=Selector(response=response)
这里的响应是什么?是对这个请求的响应吗?
response=requests.get('https://www.zhihu.com/api/v4/columns/wangzhenotes/items“,headers=headers)
?@Roman是的,是的。