XPath-嵌套路径刮取
我正在尝试执行网页的html废弃。我喜欢从三个“img”元素中提取三个备用文本(alt突出显示) 我使用下面的代码提取幻灯片1的整个“img”元素XPath-嵌套路径刮取,xpath,Xpath,我正在尝试执行网页的html废弃。我喜欢从三个“img”元素中提取三个备用文本(alt突出显示) 我使用下面的代码提取幻灯片1的整个“img”元素 from lxml import html import requests page = requests.get('sample.html') tree = html.fromstring(page.content)
from lxml import html
import requests
page = requests.get('sample.html')
tree = html.fromstring(page.content)
text_val = tree.xpath('//a[class="cover-wrapper"][id = "slide-1"]/text()')
print text_val
我没有显示备用文本值。但这是一个空列表
使用的HTML脚本:
试试这个:
//a[@class="cover-wrapper"]/img/@alt
因此,我首先选择具有标记和类作为封面包装的节点,然后选择节点img,然后选择img的属性alt
要查找整个图像元素,请执行以下操作:
//a[@class="cover-wrapper"]
我想你想要:
//div[@class="showcase-wrapper"][@id="slide-1"]/a/img/@alt
这是一种可能的XPath:
//div[@id='slide-1']/a[@class='cover-wrapper']/img/@alt
说明:
//div[@id='slide-1']/a[@class='cover-wrapper']/img/@alt
:此部分通过比较//div[@id='slide-1']
属性值来查找目标id
元素。注意使用
语法来引用XPath中的属性。缺少@attribute\u name
符号会将XPath选择器的含义更改为引用具有相同名称的-child-元素,而不是属性@
:从XPath前一位找到的每个/a[@class='cover-wrapper']
元素中,找到属性值等于
的子元素'cover-wrapper'
:然后从每个这样的/img/@alt
元素中,找到子元素
,并返回其
属性alt
如果要在屏幕截图中返回所有3个
alt
属性,则可能需要将id
过滤器更改为以(@id,'slide-')开头。
。是否要[class=“showcase wrapper”]
?请将代码包含在代码格式中,而不是屏幕截图中。我这里缺少一些内容…我得到一个空列表作为输出。我会在我这边做一些分析。。。谢谢你的详细解释。我很感激。。。