上面代码报错:AttributeError: 'NoneType' object has no attribute 'text' 怎么修正
时间: 2023-08-27 13:22:12 浏览: 189
这个错误通常是因为找不到指定的HTML标签而导致的。为了修正这个错误,可以在使用 `find()` 方法之前先进行判断,确保找到了指定的标签。例如,可以添加 `if` 语句进行判断,如果找到了指定的标签,则获取标签的文本内容,否则输出提示信息。
以下是修正代码的示例:
```python
import requests
from bs4 import BeautifulSoup
# 股票代码
stock_code = "sh000001"
# 新浪财经网站URL
url = "https://finance.sina.com.cn/realstock/company/{}/nc.shtml".format(stock_code)
# 发送HTTP请求并获取响应内容
response = requests.get(url)
html = response.text
# 使用BeautifulSoup解析HTML内容
soup = BeautifulSoup(html, "html.parser")
# 获取股票实时报价
price_tag = soup.find("strong", {"id": "last"})
if price_tag is not None:
price = price_tag.text
else:
price = "未知"
# 获取股票涨跌幅
change_tag = soup.find("strong", {"id": "change"})
if change_tag is not None:
change = change_tag.text
else:
change = "未知"
# 获取股票成交量
volume_tag = soup.find("strong", {"id": "volume"})
if volume_tag is not None:
volume = volume_tag.text
else:
volume = "未知"
# 打印股票实时行情信息
print("股票代码:{}".format(stock_code))
print("股票实时报价:{}".format(price))
print("股票涨跌幅:{}".format(change))
print("股票成交量:{}".format(volume))
```
在代码中,我们添加了对 `find()` 方法返回值的判断,如果返回值为 `None`,则将对应的信息设置为“未知”。这样可以避免因为找不到标签而导致的 `AttributeError` 错误。
阅读全文