【问题标题】:get all the links of HTML using lxml使用 lxml 获取 HTML 的所有链接
【发布时间】:2014-01-24 03:06:18
【问题描述】:

我想使用 lxml 从 html 页面中找出所有 url 及其名称。

我可以解析 url 并且可以找到这个东西,但是有什么简单的方法可以让我使用 lxml 找到所有 url 链接?

【问题讨论】:

  • 请注意,HTML 不是 XML;如果您因为缺少结束元素或属性值周围缺少引号而无法解析,Beautiful Soup 可以提供帮助,或者可能更适合。

标签: python lxml


【解决方案1】:
from lxml.html import parse
dom = parse('http://www.google.com/').getroot()
links = dom.cssselect('a')

【讨论】:

  • 很好的答案,只需要做一个pip install cssselect 就可以开始了。
【解决方案2】:
from lxml import etree, cssselect, html

with open("/you/path/index.html", "r") as f:
    fileread = f.read()

dochtml = html.fromstring(fileread)

select = cssselect.CSSSelector("a")
links = [ el.get('href') for el in select(dochtml) ]

links = iter(links)
for n, l in enumerate(links):
    print n, l

【讨论】:

  • 请注意,cssselect 现在是一个独立的项目,不再附带 lxml。使用pip install cssselect 安装。去here了解更多信息。
猜你喜欢
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多