从硬盘驱动器打开html文件并对其进行xpath搜索

时间:2016-11-26 17:45:00

标签: html xpath

我的HD上有一个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'错误,但我只是没有正确的代码。

有什么建议吗?此致

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

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

这可确保自动处理文件数据的解码。