这是给合法的lxml
大师的。我有一个网络抓取应用程序,我想在其中迭代div.content
网站上的许多(内容是类)标签。一旦进入 div.content 标签,我想看看是否有任何<a>
标签是元素的子<h3>
元素。这似乎相对简单,只需尝试使用XPath
div.cont 标签创建一个列表,即
linkList = tree.xpath('div[contains(@class,"cont")]//h3//a')
问题是,然后我想创建一个tuple
包含来自 div.content 框的链接以及来自同一 div.content 框的段落元素的文本。我显然可以遍历整个文档并存储所有段落文本以及所有链接,但是我没有任何真正的方法可以将适当的段落与<a>
标签匹配。
lxml 的Element.iter()
函数几乎可以通过迭代所有div.cont
元素来实现这一点,忽略那些没有<a>
标签的元素,并配对paragraph/a
组合,但不幸的是,似乎没有任何选项可以使用该方法迭代类名,只有标签名。
编辑:这是我要解析的 HTML 的一个非常精简的版本:
<body>
<div class="cont">
<h1>Random Text</h1>
<p>The text I want to obtain</p>
<h3><a href="somelink">The link I want to obtain</a></h3>
</div>
</body>
我想使用许多像这样的 div.conts —— 它们中的大多数都有比这更多的元素,但这只是一个草图,让您了解我正在使用的东西。