我有页面:
<body>
<div>
<a id="123">text_url</a>
</div>
<body>
我希望得到元素&#39; // div / a&#39;作为简单的HTML文本。
<a id="123">text_url</a>
我该怎么做?
答案 0 :(得分:1)
如果您已使用lxml
解析了该对象,则可以使用lxml.etree.tostring()
对其进行序列化:
from lxml import etree
xml='''<body>
<div>
<a id="123">text_url</a>
</div>
</body>'''
root = etree.fromstring(xml)
for a in root.xpath('//div/a'):
print etree.tostring(a, method='html', with_tail=False)
答案 1 :(得分:0)
使用抓取模块在python中使用解决方案。
from grab import Grab
g = Grab()
g.go('file://page.htm')
print g.doc.select('//div/a')[0].html()
>><a id="123">text_url</a>
答案 2 :(得分:0)
你可以使用re.findall使用python的re模块。
import re
print re.findall(r".*?(<a.*?<\/a>).*",x,re.DOTALL)
其中x是 X =&#34;&#34;&#34; text_url &#34;&#34;&#34;
Output:['<a id="123">text_url</a>']
也参见演示。
答案 3 :(得分:0)
您可以在Python中使用xml库。
from xml.etree.ElementTree import parse
doc = parse('page.xml') # assuming page.xml is on disk
print doc.find('div/a[@id="123"]').text
请注意,这仅适用于严格的XML。 例如,关闭body标记不正确,在这种情况下此代码将失败。 Web上的HTML很少是严格的XML。