我正在尝试从网页上收集信息,但无法获取正确的XPath来查找信息。这是网站的一部分:
<div class="posted">
<div>
June 20, 2018
</div>
</div>
我想在每个页面上搜索此分类类,该分类类显示“ posted”,然后将其下的所有内容作为字符串返回。 (一个凌乱的字符串是可以的;我将仅使用“如果“ possibleDate”“中的” 2018“来搜索年份),这是我正在尝试的:
possibleDate = str(tree.xpath("//div[contains(@class, ’posted’)]//@text"))
说这是一个无效的表达式。
我在做什么错了?
答案 0 :(得分:1)
首先,用’
周围的'
个字符替换posted
个字符。
接下来,将@text
替换为text()
,以消除XPath语法错误。
此外,您可能想使用所选div
的空间归一化字符串值,而不是选择文本节点:
possibleDate = str(tree.xpath("normalize-space(//div[@class='posted'])")
这将抽象化嵌套在目标div
中的标记变体。
另请参见: xpath: find a node whose class attribute matches a value and whose text contains a certain string