python-2.7 - 股票市场上的网络抓取 - AttributeError:“NoneType”对象没有属性“文本”
问题描述
查看 我正在尝试在股票市场网站上进行网络抓取的网站代码图片。
我的代码是:
import urllib.request
from bs4 import * soup=BeautifulSoup(urllib.request.urlopen("http://www.bloomberg.com/quote/SPX:IND"))
title = soup.title.text
name = soup.find('span', {'class': 'navi-bar__logo--title'}).text #this class is executed
value = soup.find('span', {'class': 'priceText__1853e8a5'}).text #problem is with this class
print(name)
print(value)
我目前陷入此错误:
警告(来自警告模块):文件“C:\Users\bakkolla\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bs4__init__.py”,第 181 行 markup_type=markup_type))
用户警告:没有明确指定解析器,因此我使用了适用于该系统的最佳 HTML 解析器(“html.parser”)。
这通常不是问题,但如果您在另一个系统或不同的虚拟环境中运行此代码,它可能会使用不同的解析器并表现不同。
导致此警告的代码位于文件的第 1 行。要消除此警告,请更改如下所示的代码:
BeautifulSoup(YOUR_MARKUP}) 对此:
BeautifulSoup(YOUR_MARKUP, "html.parser") Traceback(最近一次调用最后):
文件“C:\Users\bakkolla\Desktop\ex.py”,第 8 行,in value = soup.find('span', {'class': 'priceText__1853e8a5'}).text #problem is with this class
AttributeError:“NoneType”对象没有属性“文本”
解决方案
Beautiful Soup 找不到名为 priceText__1853e8a5 的类,因此它返回 None,因此无法获取 none 的 text 属性。如果 div 类不随页面更改,请检查几页并检查您的拼写是否正确
推荐阅读
- php - 如何在 PHP7 中连接到 MS Access 数据库?
- javascript - 响应子组件下拉列表的 onChange 事件以更新状态
- bash - Bash条件混合函数返回值和条件检查
- java - 信息:配置“编译”已过时,已替换为“实施”和“API”
- javascript - React:更改功能组件中的状态也更改功能组件的道具值及其父类状态
- javascript - 删除具有最高值的对象属性并将结果放入数组中
- php - 无法从 nodeMCU 发送 GET 请求
- docker - 构建 docker 映像时复制异常
- python - 使用 scrapy 发送表单请求和有效负载
- python - 单击tkinter中的按钮后如何显示“正在加载...”然后运行脚本?