繁体   English   中英

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

[英]Get xpath from html file using LXML - Python

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

足够的上下文。 这是我在做什么:

  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)

树变量的类型是

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

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

通过在 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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM