2013-03-07 78 views
4

快速而简单:提取HREF值使用XPath Python的2.7

<a href="some content">Click here</a> 

我如何可以提取“某些内容”和“点击我”使用XPath的蟒蛇?

到目前为止,我有以下的(仅提取 “某些内容” 从HREF结果):

import lxml.etree as LE 
import requests 

r = requests.get("http://localhost") 
html = r.text 
root = LH.fromstring(html) 
print root.xpath('//a/@href') 

感谢adavance。

+0

你有使用XPath?正则表达式应该适用于HTML。 – b10hazard 2013-03-07 13:14:29

+1

我曾经与正则表达式做...但后来我在膝盖上的箭头。抛开笑话。正则表达式不推荐用于解析html/xml结果:) – 2013-03-07 13:25:19

+0

啊,我明白了。我不熟悉xpath。也许我会在下次需要解析html时尝试一下。 – b10hazard 2013-03-07 13:37:53

回答

2

您只能选择使用XPath一个或另一个,但你可以选择所有<a>元素,然后摘掉href属性和文本内容是这样的:

for elt in root.xpath('//a'): 
    print(elt.attrib['href'], elt.text_content()) 
+0

再次感谢你=) – 2013-03-07 13:27:40