。在遇到一些问题之后,我得到了一个使用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/

10-09 01:09