我只是想解析这个网站,并且我一直在使用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)
答案 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))