【发布时间】:2015-07-03 18:52:31
【问题描述】:
我正在尝试解析一家结构不佳的餐厅网站,并仅打印出菜单标题,例如:
“便当盒”, “Bara Chirashi 套装”, 等等
我正在使用 Python 库 Beautiful Soup,但无法获得正确的输出:
import requests
from bs4 import BeautifulSoup
url = ('http://www.sushitaro.com/menu-lunch.html')
r = requests.get(url, auth=('user', 'pass'))
data = r.text
soup = BeautifulSoup(data)
dataList = list()
for string in soup.findAll('b'):
dataList.append(string)
print(dataList)
这会返回太多元素,它们以 HTML 的形式返回,而不仅仅是文本,而且文本内容本身非常混乱,带有 unicode 字符和过多的空格。
我真的遇到了麻烦,所以任何帮助都将不胜感激。
【问题讨论】:
-
“遇到麻烦”是什么意思?这有什么问题?看起来您正在尝试选择所有粗体文本;它不是那样做,还是那样做,但那不是你真正想做的?
-
我认为您在使用此页面时会遇到问题,因为它的格式非常糟糕。此外,您不需要 coe 的 auth=(...) 部分,因为访问此页面不需要授权;)
标签: python html beautifulsoup screen-scraping