python xpath获取多个li标签内容是空?还请大神指点迷津

python问题: xpath获取多个li标签内容是空的?

from scrapy.selector import Selector

想通过Selector爬取网站信息,同时保存多个li标签中的title标签值,总是得到空的列表。
python xpath获取多个li标签内容是空?还请大神指点迷津_第1张图片

names = sel.xpath('//*[@class="list-box"]/li/a/@title')

因为title标签内容和a标签文本内容一致,想获取文本,结果也为空列表。

name=sel.xpath('//div/ul[@class="list-box"]//li//a//text()').extract()

尝试过多种格式,均无果。
发现只有以下代码可得到一些信息,但不能用:

names = sel.xpath('//*[@class="list-box"]/li').extract()

python xpath获取多个li标签内容是空?还请大神指点迷津_第2张图片
note:
该问题很常见,但暂时未找到解决办法,待解决!——20200526

xpath简介:
首先需要了解一下定位符的格式。
python xpath获取多个li标签内容是空?还请大神指点迷津_第3张图片
xpath作为一种简单有效定位方法,可为selenium所用。xpath可用来在xml文档中对元素和属性进行遍历。由于html的层次结构与xml的层次结构一致,所以使用xpath也能够进行html元素的定位。
使用xpath可结合lxml库进行使用,
from lxml import etree
Selector=etree.HTML
这样就可以把网页源代码转换成可被xpath识别和匹配的对象,Selector.xpath(’’)引号内容为匹配感兴趣的内容。
其中//定位根节点,/表示往下层寻找,text()为提取文本内容,@#为提取某个属性 #的内容。

xpath定位方法
该网页下选择内容位置右键选择审查元素,将自动定位到浏览器页面上选择需要定位的元素,Elements页中就会自动定位高亮显示页面中的元素。

xpath调试
可以在 console控制台进行xpath的调试,以验证表达式是否正确。
以$x(“xpath表达式”)进行,但我又试了试,只能以元素的绝对路径才可以获取,相对路径似乎不行,但绝对路径对于想要的获取的数据不太合适,还得继续摸索一下。

你可能感兴趣的:(问题解决,python,html,xpath,数据分析)