2016-11-26 1 views
0

HD上にWebサイトをスクラップしたときと同じようにxpath検索を行いたいhtmlファイルがあります。ハードドライブから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」エラーを得続けるが、私はちょうど右のコードを得ることはありません。

提案がありますか?これは、ファイルデータの復号化は自動的に処理されていることを確認します

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

:よろしく

+0

HTML(厳密なXHTMLさえも)が有効なXMLであることはめったにないので、XMLパーサーを使用することは悪い考えです。 –

答えて

0

は、次のコードを使用することができます。

+0

こんにちはMarkus、ありがとう、それはトリックをした! –

関連する問題