【问题标题】:I can not parse html using xpath and lxml library我无法使用 xpath 和 lxml 库解析 html
【发布时间】:2016-10-16 10:39:35
【问题描述】:

我正在使用 Python 3.5。 我想在 XPATH 的帮助下从该站点获取同义词列表,但我没有获得所需的 html 代码并获得“[]”。

import lxml.html
word=input("Input your word: ")
url = "http://www.thesaurus.com/browse/{word}?s=t.html".format(word=word)
html = lxml.html.parse(url)
syn = html.xpath("//DIV[@id='filters-0']")
print(syn)

如果你擅长python,那么告诉我如何更简洁和简单地完成这样的任务。 非常感谢!

【问题讨论】:

  • word变量的值是多少?
  • 你想做什么?粘贴要提取的链接和示例文本,您的 xpath 也是错误的。
  • 我正在尝试从该站点获取同义词。在“word”变量中是任何单词,例如“friend”、“sun”。

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


【解决方案1】:

xpath 语法区分大小写:

syn = html.xpath("//div[@id='filters-0']")
print(syn)

【讨论】:

  • 结果,我得到 []
  • 我不知道该怎么办
【解决方案2】:

想象你需要提取同义词:

import requests
from lxml import html

source = html.fromstring(((requests.get('http://www.thesaurus.com/browse/wordy?s=t.html')).text).encode('utf-8'))
print (source.xpath('//div[@class="synonym-description"]//text()')[3].strip())

【讨论】:

  • lxml 可以直接从 url 读取。猜测编码可能是错误的。
  • 但是只有当你在链接中插入一个词时,它才有效,在代码中,但是当你试图让程序输入一个词并在链接结构中插入“{word}”时。格式(字 = 字)“我得到 [] 而不是正常的答案。我做错了什么?对不起我的英语不好/
  • @Andrey Kazyncev 首先发出 HTTP 请求然后从响应中解析很重要。使用 requests 库发出 http 请求和 lxml.html 用于解析响应。
  • @Daniel 我使用 python 2.x,它经常引发编码错误和请求 lib 有利于正确处理它们。
猜你喜欢
  • 2012-07-12
  • 2012-08-23
  • 2010-12-07
  • 2016-02-20
  • 2012-07-29
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 2018-09-12
相关资源
最近更新 更多