我的HTML格式如下:
<tr>
<td>Title:</td>
<td>Title value</td>
</tr>
我必须指定在这之后<td>
和我想要抓取第二个<td>
的文本的文本。类似于:抓取<td>
之后第一个<td>
的文本,其中包含文本Title:
。结果应该是:Title value
我对Python和BeutifulSoupno有一些基本的了解,而且我不知道在没有class
的情况下如何做到这一点。在
我试过了:
^{pr2}$我收到错误:AttributeError:'ResultSet' object has no attribute 'nextSibling'
对于使用xpath的lxml,您要做的事情相对容易一些。你可以试试这样的方法
首先,
soup.find_all()
返回一个ResultSet
,它包含标记为td
和字符串为Title:
的所有元素。在对于结果集中的每个这样的元素,您将需要分别获得nextSibling(另外,您应该循环直到找到标记
td
的nextSibling,因为您可以在这两者之间获得其他元素(比如NavigableString))。在示例-
或者您可以使用另一个支持XPATH的库,使用XPATH可以很容易地做到这一点。其他库如-
lxml
或xml.etree
。在相关问题 更多 >
编程相关推荐