Python 3.3中的BeautifulSoup错误

时间:2013-04-04 03:13:18

标签: html parsing beautifulsoup python-3.3

我只是想解析这个网站,并且我一直在使用BeautifulSoup收到错误。有人可以帮助我并找出问题吗?

import urllib
import urllib.request
import beautifulsoup




html = urllib.request.urlopen('http://yugioh.wikia.com/wiki/Card_Tips:Blue-Eyes_White_Dragon').read()
soup = beautifulsoup.bs4(html)
texts = soup.findAll(text=True)

def visible(element):
    if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
        return False
    elif re.match('<!--.*-->', str(element)):
        return False
    return True

visible_texts = filter(visible, texts)

1 个答案:

答案 0 :(得分:0)

你混淆了模块和类名。而不是:

import beautifulsoup

你需要:

import bs4

而不是:

beautifulsoup.bs4(...)

你需要:

bs4.BeautifulSoup(...)

此外,在Beautiful Soup的最新版本中,下划线变体比名称的驼峰式变体更受欢迎,因为它更适合其他Python惯例:

soup.find_all(...)

此外,根据您使用visible_texts所做的事情,您可能需要list而非懒惰filter

visible_texts = list(filter(visible, texts))