【问题标题】:How do I get the text of the element using xpath and python?如何使用 xpath 和 python 获取元素的文本?
【发布时间】:2016-05-05 05:09:25
【问题描述】:

我在使用 xpath 获取网页中的元素时遇到了很多麻烦。我需要获取左侧和右侧的文本。 有 7 个类,所以会有 7 个。

在这些 div 中,它看起来像

我只需要与第一张照片相对应的文字。 以下只是一次尝试

result = session_requests.get(url, headers = dict(referer = url))
tree = html.fromstring(result.content)
grades = tree.xpath(".//div[@class='AssignmentClass'][1]//text()")
print grades

【问题讨论】:

标签: python html xpath web-scraping


【解决方案1】:

Xpath 之所以如此强大,是因为它是一种用于描述数据路径和数据本身的语法。

在这种情况下,您应该以text() 结束您的路径,因为这正是您想要的。

tree.xpath(".//div[@class='AssignmentClass'][1]//text()")

【讨论】:

【解决方案2】:

您可以使用以下 XPath

  1. <a> 标签中获取文本:

    //div[@class='AssignmentClass']//a/text()
    
  2. <span> 标签中获取文本:

    //div[@class='AssignmentClass']//span[2]/text()
    

【讨论】:

  • 对不起,我指的是你做 tree.findall 的时候。但这就是我所做的,我仍然得到 [] grade = tree.xpath("//div[@class='AssignmentClass']//a/text()")
  • 我完全理解你在说什么,但是当我运行你提供的第一行代码时,我仍然得到一个 nil。当你做 //a 是选择 a 标签?
  • @user6032625 - 如果您只使用//div[@class='AssignmentClass'],这会获取所有 7 个div 吗?
  • No 仍然打印 nil。
  • @user6032625 - 检查result.content,看看它是否与您在浏览器上看到的源相同。
猜你喜欢
  • 1970-01-01
  • 2022-12-18
  • 2020-03-24
  • 2016-09-02
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多