请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

xpath正确但是返回列表是空怎么回事?

老师您能不能运行一下我下面的代码,html返回没有问题,有我需要提取的数据,而且我的xpath在XPath Helper
中验证过了,是正确的,可以提取到数据,但是为什么用代码抓取下来的列表就是空的?但是在代码中改用相对路径’//*[@href="/topics/396730744"]'就可以获取到数据,这两个xpath一个绝对路径一个相对路径,在插件中验证都是没问题的,但是不明白为什么只有相对路径的可以提取到数据。

from scrapy import Selector
import requests

res = requests.get(‘https://bbs.csdn.net/’,verify=False)
html = res.text
print html
sel = Selector(text=html)
t = sel.xpath(’/html/body/div[3]/div[2]/div[1]/div[3]/ul/li[8]/label/a[2]/text()’).extract()
print t

正在回答 回答被采纳积分+3

2回答

qq_慕工程7077262 2021-02-21 19:37:49

你好,我也出现了这个问题,在百度上搜到了这个回答,请问解决了吗

0 回复 有任何疑惑可以回复我~
bobby 2020-06-11 12:41:55

https://img1.sycdn.imooc.com//szimg/5ee1b5f809396bd615710789.jpg 你应该像我这样 直接看html代码 你仔细俺看看这个路径中绝对路径对不对 我这里看起来是是不对的

0 回复 有任何疑惑可以回复我~
  • 提问者 南州北面 #1
    谢谢老师,确实是这个问题,我在原网站上用f12找到的绝对路径和我通过请求获取之后的HTML的绝对路径不一样,挺奇怪的,不知道为啥这个html会不一样
    回复 有任何疑惑可以回复我~ 2020-06-11 15:27:53
  • bobby 回复 提问者 南州北面 #2
    那你使用css选择器可以成功吗? 或者你直接使用firefox拷贝一下xpath 一般firefox拷贝出来的就是绝对路径
    回复 有任何疑惑可以回复我~ 2020-06-12 18:50:56
  • 提问者 南州北面 回复 bobby #3
    css不会用。。已经知道问题了,就是您视频里讲的,直接在网页上拷贝的xpath跟请求回来的不一样
    回复 有任何疑惑可以回复我~ 2020-06-12 21:59:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信