当前位置:  开发笔记 > 编程语言 > 正文

BeautifulSoup解析的问题

如何解决《BeautifulSoup解析的问题》经验,为你挑选了1个好方法。

我试图用BeautifulSoup解析一个html页面,但看起来BeautifulSoup根本不喜欢html或那个页面.当我运行下面的代码时,方法prettify()只返回页面的脚本块(见下文).有人知道它为什么会发生吗?

import urllib2
from BeautifulSoup import BeautifulSoup

url = "http://www.futureshop.ca/catalog/subclass.asp?catid=10607&mfr=&logon=&langid=FR&sort=0&page=1"
html = "".join(urllib2.urlopen(url).readlines())
print "-- HTML ------------------------------------------"
print html
print "-- BeautifulSoup ---------------------------------"
print BeautifulSoup(html).prettify()

这是BeautifulSoup产生的输出.

-- BeautifulSoup ---------------------------------



谢谢!

更新:我使用的是以下版本,这似乎是最新版本.

__author__ = "Leonard Richardson (leonardr@segfault.org)"
__version__ = "3.1.0.1"
__copyright__ = "Copyright (c) 2004-2009 Leonard Richardson"
__license__ = "New-style BSD"

miles82.. 6

尝试使用版本3.0.7a作为Łukasz建议.BeautifulSoup 3.1旨在与Python 3.0兼容,因此他们必须将解析器从SGMLParser更改为HTMLParser,这似乎更容易受到不良HTML的攻击.

从BeautifulSoup 3.1的更改日志:

"Beautiful Soup现在基于HTMLParser而不是SGMLParser,它在Python 3中消失了.有一些不好的HTML,SGMLParser处理但是HTMLParser没有"



1> miles82..:

尝试使用版本3.0.7a作为Łukasz建议.BeautifulSoup 3.1旨在与Python 3.0兼容,因此他们必须将解析器从SGMLParser更改为HTMLParser,这似乎更容易受到不良HTML的攻击.

从BeautifulSoup 3.1的更改日志:

"Beautiful Soup现在基于HTMLParser而不是SGMLParser,它在Python 3中消失了.有一些不好的HTML,SGMLParser处理但是HTMLParser没有"

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有