【问题标题】:HTML parsing to obtain what I want [duplicate]HTML解析以获得我想要的[重复]
【发布时间】:2011-08-06 18:10:10
【问题描述】:

我正在尝试在 Python 中进行一些 HTML 解析,老实说,我很害怕。我一直在谷歌搜索方法来做到这一点,但无法得到任何工作。这是我的情况。我有一个包含大量下载链接的网页。我想要做的是指定一个搜索字符串,如果我要搜索的字符串在那里,下载文件。但它需要获取整个文件名。例如,如果我正在搜索 game-1 并且实际游戏的名称是 game-1-something-else,我希望它下载 game-1-1something-else。我已经使用以下代码来获取页面的来源:


import urllib2
file = urllib2.urlopen('http://www.example.com/my/example/dir')
dload = file.read()
这会抓取网页的整个源代码,它本身只是一个目录。例如,我有很多标签。我有<a href 标签、<td> 标签等。我想对标签进行字符串化,所以我所拥有的只是网页目录中的文件列表,然后我想使用正则表达式或类似的东西搜索我要搜索的内容,获取整个文件名,然后下载。

【问题讨论】:

  • lxml.html 是你的朋友。 XPath 也是如此。
  • 您不能使用正则表达式来解析 HTML。真的。绝不。美人——ootiful Soo-oop!美人——ootiful Soo-oop!电子-电子--晚上的Soo-oop,美丽,美丽的汤!

标签: python html


【解决方案1】:

获得 HTML 数据后,对其进行解析,然后您可以选择页面内的节点:

import lxml.html
tree = lxml.html.fromstring(dload)
for node in tree.xpath('//a'):
    print node['href']

【讨论】:

  • 当然,您需要安装lxml,因为它不附带 Python。 ...我们贿赂谁让 Tkinter 被删除并添加 lxml?
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多