我试图获取每个节点的元素/标记名称,其中我有一个特定的属性值。
我有一个xml:
<a node='1'>This</a>
<b node='2'>Is</b>
<c node='23'>A</c>
<d selector='g'>Loud</d>
<e node='4'>Dog</e>
字符串
我有一个我想收集的信息节点列表,名为nodes
。
我使用以下命令从这些节点中选择文本:
for node in nodes:
get_text = response.xpath(f'//*[@node="{node}"]//text()').extract()
型
我还需要节点元素的名称。然而,当我在同一个for循环中使用这一行时:
get_name = response.xpath(f'//*[@node="{node}"]/name()').get()
型
我得到错误:
ValueError: XPath error: Invalid expression
型
我已经尝试了许多变体,但无法获得每个节点的元素/标记名称。
1条答案
按热度按时间jdg4fx2g1#
我所知道的获取元素标记名称的最好方法是使用regex方法
re
中内置的scrapy。通常使用的模式是
r'<(\w+)\s'
。下面是一个示例:
scrapy shell
个字符串
node
属性的元素.re
方法搜索regex模式以找到元素标记名称。