2013-03-07 108 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