【发布时间】:2018-07-19 13:54:45
【问题描述】:
我必须首先说我是一个关于 Beautifulsoup 的初学者。 我确实尝试在几个网站上收集数据(在这种情况下是最新的难度值)以便练习,但除了这个错误之外我无法得到任何结果/值:'NoneType' object has no attribute 'text'
https://www.quandl.com/data/BCHAIN/DIFF-Bitcoin-Difficulty
这是我正在使用的代码:
quote_page = 'https://www.quandl.com/data/BCHAIN/DIFF-Bitcoin-Difficulty'
page = urllib2.urlopen(quote_page)
soup = BeautifulSoup(page, 'html.parser')
value_box = soup.find('div', {'class':'latest-value'})
value = value_box.text
我一直在寻找类似的错误,可能是因为 value_box 为空或 None。但是我不知道如何适应它。
非常感谢您的支持:)
【问题讨论】:
-
soup.find()如果未找到元素,则返回None。 -
那么当
value_box不存在(不存在于从 URL 返回的 HTML 中)时应该发生什么? -
您可以随时查看
if value_box is not None -
该页面使用 AJAX 加载数据。
urllib2不是浏览器,不会执行附加到页面的 Javascript,因此您加载的 HTML 不包含您看到的数据。只需从 quandl.com/api/v3/datasets/BCHAIN/DIFF/… 加载 JSON。这是页面用来将数据加载到浏览器中的 URL。 -
如何从网站获取 JSON?
标签: python beautifulsoup attributes nonetype