使用 LXML 从 html 文件获取 xpath - Python
Get xpath from html file using LXML - Python
我正在学习如何使用 lxml 解析文档。为此,我正在尝试解析我的 linkedin 页面。它有很多信息,我认为这将是一个很好的培训。
上下文就够了。这是我在做什么:
- 要去url:https://www.linkedin.com/in/NAME/
- 打开并将源代码保存为"linkedin.html"
- 当我试图提取当前的工作时,我正在执行以下操作:
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)
树变量的类型是
但它总是 return 我的变量标题的空列表。
我已经尝试了一整天,但仍然不明白我做错了什么。
我通过在 open() 函数中添加一个编码参数找到了问题的答案。
这是我所做的:
def parse_html_file(filename):
f = open(filename, encoding="utf8").read()
parser = etree.HTMLParser()
tree = etree.parse(StringIO(f), parser)
return tree
tree = parse_html_file('linkedin.html')
name = tree.xpath('//li[@class="inline t-24 t-black t-normal break-words"]')
print(name[0].text.strip())
我正在学习如何使用 lxml 解析文档。为此,我正在尝试解析我的 linkedin 页面。它有很多信息,我认为这将是一个很好的培训。
上下文就够了。这是我在做什么:
- 要去url:https://www.linkedin.com/in/NAME/
- 打开并将源代码保存为"linkedin.html"
- 当我试图提取当前的工作时,我正在执行以下操作:
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)
树变量的类型是
但它总是 return 我的变量标题的空列表。
我已经尝试了一整天,但仍然不明白我做错了什么。
我通过在 open() 函数中添加一个编码参数找到了问题的答案。
这是我所做的:
def parse_html_file(filename):
f = open(filename, encoding="utf8").read()
parser = etree.HTMLParser()
tree = etree.parse(StringIO(f), parser)
return tree
tree = parse_html_file('linkedin.html')
name = tree.xpath('//li[@class="inline t-24 t-black t-normal break-words"]')
print(name[0].text.strip())