(python)Xpath如何提取html标签(HTML标签和内容)问题: (python)Xpath如何提取html标签(HTML标签和内容)
描述:
<div>
<table>
<tr>
<td>Row value 1</td>
<td>Row value 2</td>
</tr>
<tr>
<td>Row value 3</td>
<td>Row value 4</td>
</tr>
<tr>
<td>Row value 1</td>
<td>Row value 1</td>
</tr>
</table>
</div>
如何把table标签提取出来,结果如下:
<table>
<tr>
<td>Row value 1</td>
<td>Row value 2</td>
</tr>
<tr>
<td>Row value 3</td>
<td>Row value 4</td>
</tr>
html内容文本框
<tr>
<td>Row value 1</td>
<td>Row value 1</td>
</tr>
</table>
代码如下:
selector = etree.HTML(html)
content = selector.xpath('//div/table')[0]
print(content)
# <Element div at 0x1bce7463548>
# 即:如何将Element对象转成str类型
解决⽅案1:
BeautifulSoup的find
解决⽅案2:
from lxml.html import fromstring, tostring
# fromstring返回⼀个HtmlElement对象
# selector = fromstring(html)
selector = etree.HTML(html)
content = selector.xpath('//div/table')[0]
print(content)
# tostring⽅法即可返回原始html标签
original_html = tostring(content)
解决⽅案3:
[div/table]就⾏吧貌似
解决⽅案4
from lxml import etree
div = etree.HTML(html)
table = div.xpath('//div/table')[0]
content = string(table,print_pretty=True, method='html')  # 转为字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。