使用 LXML 从 html 文件获取 xpath - Python

我正在学习如何使用 lxml 解析文档。为此,我尝试解析我的 linkedin 页面。它有很多信息,我认为这将是一次很好的培训。

上下文足够了。这是我正在做的:

  1. 转到网址: https: //www.linkedin.com/in/NAME/

  2. 打开源代码并将其保存为“linkedin.html”

  3. 当我试图摆脱当前的工作时,我正在执行以下操作:

from io import StringIO, BytesIO

from lxml import html, etree


# read file

filename = 'linkedin.html'

file = open(filename).read()


# building parser

parser = etree.HTMLParser()

tree = etree.parse(StringIO(file), parser)


# parse an element

title = tree.xpath('/html/body/div[6]/div[4]/div[3]/div/div/div/div/div[2]/main/div[1]/section/div[2]/div[2]/div[1]/h2')

print(title)

树变量的类型是


但它总是为我的变量标题返回一个空列表。


我已经尝试了一整天,但仍然不明白我做错了什么。


隔江千里
浏览 55回答 1
1回答

梵蒂冈之花

我通过在 open() 函数中添加编码参数找到了问题的答案。这是我所做的:def parse_html_file(filename):    f = open(filename, encoding="utf8").read()    parser = etree.HTMLParser()    tree = etree.parse(StringIO(f), parser)    return treetree = parse_html_file('linkedin.html')name = tree.xpath('//li[@class="inline t-24 t-black t-normal break-words"]')print(name[0].text.strip())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5