【问题标题】:Get xpath from html file using LXML - Python使用 LXML 从 html 文件获取 xpath - Python
【发布时间】:2020-07-12 07:29:48
【问题描述】:

我正在学习如何使用 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)

树变量的类型是

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

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

【问题讨论】:

    标签: python html python-3.x html-parsing lxml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2012-07-29
      相关资源
      最近更新 更多