slw*_*lwr 3 html python parsing
我有这个HTML结构:
<div>
<table>
<tbody>
<tr>
<td>stuff</td>
</tr>
<tr>
<td>
<div>The content I want</div>
</td>
</tr>
</tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
如何获取"我想要的内容"并删除所有html标签?
谢谢
使用BeautifulSoup,例如
>>> from BeautifulSoup import BeautifulSoup as bs
>>> text = """<div>
... <table>
... <tbody>
... <tr>
... <td>stuff</td>
... </tr>
... <tr>
... <td>
... <div>The content I want</div>
... </td>
... </tr>
... </tbody>
... </table>
... </div>"""
>>> a = bs(text)
Run Code Online (Sandbox Code Playgroud)
由于所有<tr>
标签都有一些内容,而您需要第二行的数据,因此您无法使用a.text
,但需要做一些更复杂的事情:
>>> a.table.tbody.findAll("tr")[1].div.text
u'The content I want'
Run Code Online (Sandbox Code Playgroud)
或者,如果<div>
表行(<tr>
)上只有一个标记,您也可以遍历标记,例如:
>>> a.table.tbody.div.text
u'The content I want'
Run Code Online (Sandbox Code Playgroud)
或者您可以使用lxml模块中的html解析器,如下所示:
>>> from lxml import html
>>> t = html.fromstring(text)
>>> t.xpath("table/tbody/tr[2]/td/div")[0].text
'The content I want'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1751 次 |
最近记录: |