难以将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,你可以请求urlhttps://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是的,是的。