因此,我对网络抓取的世界还不熟悉,到目前为止,我只真正使用beautifulsoup从网站上抓取文本和图像。我想我会尝试从一张图上刮下一些数据点来测试我的理解,但我对此有点困惑
在检查了我想要提取的数据的元素之后,我看到了以下内容:
<span id="TSMAIN">: 100.7490637</span>
问题是,我最初刮取数据点的想法是遍历某种包含所有不同数据点的id列表(如果有意义的话)
相反,似乎所有的数据点都包含在同一个元素中,值取决于光标在图形上的位置
我的问题是,如果我在特定元素中使用beautifulsoups find函数和type,属性为id
=TSMAIN
,我会得到一个none-type返回,因为我在猜测,除非我将光标放在实际图形上,否则那里不会显示任何内容
代码:
from bs4 import BeautifulSoup
import requests
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"}
url = "https://www.morningstar.co.uk/uk/funds/snapshot/snapshot.aspx?id=F0GBR050AQ&tab=13"
source=requests.get(url,headers=headers)
soup = BeautifulSoup(source.content,'lxml')
data = soup.find("span",attrs={"id":"TSMAIN"})
print(data)
输出
None
如何提取此图的所有数据点
似乎可以从API中提取数据。唯一的问题是它返回的值是相对于有效负载中输入的开始日期的。它将开始日期的输出设置为
0
,然后后面的数字与该日期相关输出:
要获得这些ID,需要对请求进行一点调查。通过搜索这些,我能够找到相应的id值,并通过一点尝试和错误来找出值的含义
使用的那些“备用”ID。这些折线图从何处获取数据(在4请求中,请查看预览窗格,您将在其中看到数据
以下是最终输出/图表:
相关问题 更多 >
编程相关推荐