2016-11-26 21 views
0

我在我的高清上有一個html文件,我想在xpath搜索上進行搜索,就像在抓取網站時一樣。從硬盤打開html文件並在其上執行xpath搜索

我用下面的代碼從網站湊:

from lxml import html 
import requests 

response = requests.get('http://www.website.com/') 
if (response.status_code == 200): 
    pagehtml = html.fromstring(response.text) 
    for elt in pagehtml.xpath('//div[@class="content"]/ul/li/a'): 
     print("**",'"',elt.text_content(),'"',"****", elt.attrib['href']) 

現在正從一個網站上的東西時,這個效果很好,但我怎麼去當HTML文件是在我的HD。我試圖約10的事情,目前我的代碼看起來是這樣的:

with open(r'website.html', 'rb') as infile: 
    data = infile.read() 
    for elt in data.xpath('//h3/a'): 
     print("**",'"',elt.text_content(),'"',"****", elt.attrib['href']) 

我不斷收到不同的錯誤,有時「_io.BufferedReader」錯誤,但我只是沒有得到正確的代碼。

有什麼建議嗎?問候

+0

使用XML解析器似乎是一個壞主意,因爲HTML(甚至是嚴格的XHTML)很少有效的XML。 –

回答

0

你可以使用下面的代碼:

from lxml import html 
pagehtml = html.parse('index.html') 
for elt in pagehtml.xpath('//a'): 
    print("**",'"',elt.text_content(),'"',"****", elt.attrib['href']) 

這可以確保文件數據的解碼自動處理。

+0

嗨馬庫斯,謝謝你,這個伎倆! –

相關問題