我是新来的scrapy。我想从网络上抓取一些数据。我得到了如下所示的html文档。
dom style1:
<div class="user-info">
<p class="user-name">
something in p tag
</p>
text data I want
</div>
dom style2:
<div class="user-info">
<div>
<p class="user-img">
something in p tag
</p>
something in div tag
</div>
<div>
<p class="user-name">
something in p tag
</p>
text data I want
</div>
</div>
我想获取数据我想要的文本数据,现在我可以使用css or xpath selector通过检查它是否存在来获取它。但我想知道一些更好的方法。
例如,我可以获得 cssp.user-name
首先,然后我得到它是父母,然后我明白了div/text()
,并且我想要的数据始终是text()
of the p.user-name
的直系父级div
,但问题是,我怎样才能得到直接父母p.user-name
?
使用 xpath,您可以在各个方向(父级、同级、子级等)遍历 xml 树,而 css 不支持此功能。
对于您的情况,您可以使用 xpath 获取节点的父节点..
父符号:
//p[@class='user-name']/../text()
解释:
//p[@class='user-name']
- find <p>
具有类值的节点user-name
.
/..
- 选择节点的父节点。
/text()
- 选择当前节点的文本。
该 xpath 应该适用于您所描述的两种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)