javascript - 当数据点在html中是动态的时如何从网站上抓取和保存图表
问题描述
有没有办法使用像 bs4 或请求这样的 python 库从这个图表中抓取数据?
我试图查看网站源数据,但在 HTML 中的任何地方都看不到数据点。
当我在图表上移动鼠标时,我看到一个变量发生了变化,但我不知道它是如何工作的。
https://infogram.com/world-container-index-1h17493095xl4zj
关于如何下载和保存这些数据点的任何想法?
解决方案
我能够提取script
填充图表的文本并将其转换为json
格式
final_data
有json
格式的数据。我想你现在可以提取你需要的任何东西。
这是代码。
import requests
from bs4 import BeautifulSoup
import json
url = "https://infogram.com/world-container-index-1h17493095xl4zj"
resp = requests.get(url)
html = resp.text
soup = BeautifulSoup(html, features="html.parser")
s = soup.findAll('script')
main_script = None
for i in range(len(s)):
if s[i].contents:
if 'window.infographicData' in s[i].contents[0]:
main_script = s[i].contents[0]
break
main_script = main_script.lstrip('window.infographicData=')
main_script = main_script.rstrip(';')
final_data = json.loads(main_script)
推荐阅读
- asp.net - 在某些子域之间共享 Cookie
- javascript - 为什么 Object.assign 没有替换我的新对象中的键?
- swift - 拆分 Double 的小数部分和整数部分
- python - 如何创建水平条形图图形数字范围?
- react-native - 从 react-native 组件更新 webview 中的输入字段
- python - 如何使用csv删除excel文件中的行
- android - 需要采取的措施:更新您的应用以符合 Google Play 权限政策
- react-admin - react-admin 从 redux-form 中排除“记录”
- c# - 在centos 7 mysql上运行的Web-Api dontnet core 2.2不工作
- html - 引导断点 - 有问题