我是Python的新手,在Windows上使用Python 3.1(pywin).我需要解析一些HTML,基本上是特定HTML标签之间的额外值,并且在我的选项数组中感到困惑,我找到的所有内容都适用于Python 2.x. 我读过关于Beautiful Soup,HTML5Lib和lxml的好评,但我无法弄清楚如何在Windows上安装任何这些.
问题:
您是否有一个简单的示例,说明如何使用推荐的库从特定URL中获取HTML并返回值,如下所示:
<div class ="foo"> <table> <tr> <td> foo </ td> </ tr> </ table> <a class="link" href='/blahblah'>链接</a> </DIV>
(说我们想要回归"/ blahblah")
Python 3中的Web抓取目前支持得很差; 所有体面的库只能用于Python 2.如果你必须在Python中使用Web,请使用Python 2.
虽然推荐使用Beautiful Soup(Stack Overflow中关于使用Python进行Web抓取的每一个问题都表明了这一点),但它对于Python 3来说并不像Python 2那么好; 我甚至无法安装它,因为安装代码仍然是Python 2.
至于适用于Python 3的适当且易于安装的解决方案,您可以尝试使用库的HTML解析器,尽管它非常简单,但它带有Python 3.
BeautifulSoup及其3.1.0.1版(2009年1月)也适用于Python 3.x.
我没有在Py3k下使用BeautifulSoup的直接经验(虽然这很快就会改变......).然而,我刚才读到,版本3.1.0的Beautiful Soup在实际HTML上的表现比以前的版本差得多,所以我可能会尝试等待(如果可能的话)(即延长Python 2.6的时间).
我目前使用的是lxml,在Windows上,我使用的是http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml中的安装二进制文件。
import lxml.html
page = lxml.html.fromstring(...)
title = page.xpath('//head/title/text()')[0]
Run Code Online (Sandbox Code Playgroud)
我知道这已经晚了,但是为了将来参考,Beautiful Soup 4.3.2从2013年10月开始供货.
http://www.crummy.com/software/BeautifulSoup/bs4/download/
它与Python 3兼容.
归档时间: |
|
查看次数: |
38974 次 |
最近记录: |