HTML解析以获得我想要的[重复]

Posted

技术标签:

【中文标题】HTML解析以获得我想要的[重复]【英文标题】:HTML parsing to obtain what I want [duplicate] 【发布时间】: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,美丽,美丽的汤! 【参考方案1】:

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

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

【讨论】:

当然,您需要安装lxml,因为它不附带 Python。 ...我们贿赂谁让 Tkinter 被删除并添加 lxml?

以上是关于HTML解析以获得我想要的[重复]的主要内容,如果未能解决你的问题,请参考以下文章

替代正则表达式以解析链接的 HTML 页面 [重复]

JSON Javascript,解析 URL [重复]

解析和处理 HTML/XML/纯文本页面 [重复]

如何使用从 TextView 中的 firebaseDB 检索到的标签解析 HTML 文本?没有 WebView [重复]

特定的 Java HTML 解析器 [重复]

使用Python解析XML来打印值[重复]