首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么漂亮的汤不在div id中显示文本?

为什么漂亮的汤不在div id中显示文本?
EN

Stack Overflow用户
提问于 2021-07-27 02:42:13
回答 1查看 34关注 0票数 0

目前,我正尝试在this link中访问seeking alpha上的股票价格,价格在此HTTML code内。

这里的代码应该会查看div id="symbol_last_trade">149.30</div的内容。但当我运行它时,程序不会将149.30输出为文本。

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup
import requests

headers ={'User-Agent': 'Mozilla/5.0'}

url = "https://seekingalpha.com/symbol/AAPL/income-statement"

r = requests.get(url,headers=headers)

source = BeautifulSoup(r.text,"html.parser")
price = source.find("div", {"id" : "symbol_last_trade"})
print(price.text)`

当我运行它时,输出如下:

代码语言:javascript
运行
复制
div id="symbol_last_trade"></div

有人知道为什么这个程序不能输出div中的文本吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-27 02:49:42

数据是通过JavaScript动态加载的,所以beautifulsoup看不到它。您可以使用requests模块进行模拟:

代码语言:javascript
运行
复制
import json
import requests

api_url = "https://finance.api.seekingalpha.com/v2/real-time-prices"
params = {"symbols[]": "aapl"}
data = requests.get(api_url, params=params).json()

# uncomment to print all data:
# print(json.dumps(data, indent=4))

print("Last price:", data["data"][0]["attributes"]["last"])

打印:

代码语言:javascript
运行
复制
Last price: 149.32
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68534976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档