。在遇到一些问题之后,我得到了一个使用lxml而不是BeaytifulSoup的提示,因为它比BeaytifulSoup好10倍。
我希望有人能给我一个提示,如何擦掉我正在寻找的文字。
我想要的是找到一个包含以下行和数据的表:
<tr>
<td><a href="website1.com">website1</a></td>
<td>info1</td>
<td>info2</td>
<td><a href="spam1.com">spam1</a></td>
</tr>
<tr>
<td><a href="website2.com">website2</a></td>
<td>info1</td>
<td>info2</td>
<td><a href="spam2.com">spam2</a></td>
</tr>
?
[['url' 'info1', 'info2'], ['url', 'info1', 'info2']]
最佳答案
import lxml.html as LH
doc = LH.fromstring(content)
print([tr.xpath('td[1]/a/@href | td[position()=2 or position()=3]/text()')
for tr in doc.xpath('//tr')])
The long XPath has the following meaning:
td[1] find the first <td>
/a find the <a>
/@href return its href attribute value
| or
td[position()=2 or position()=3] find the second or third <td>
/text() return its text value
关于python - 用lxml解析HTML数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8635903/