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解析以获得我想要的[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用从 TextView 中的 firebaseDB 检索到的标签解析 HTML 文本?没有 WebView [重复]