从 Tableau Public 仪表板中抓取数据

2024-07-04

我对从网站上抓取数据还很陌生,并且不知道如何从使用 Tableau Public 的网站上抓取数据

网站:https://showmestrong.mo.gov/data/public-health/ https://showmestrong.mo.gov/data/public-health/

我一直在阅读一些关于如何检查元素并找到其中的表格的资料,但我不知所措。我尝试过在Python中使用requests and BeautifulSoup但不知道如何过去。

import requests
from bs4 import BeautifulSoup
import json
import re

r = requests.get("https://showmestrong.mo.gov/data/public-health/")
soup = BeautifulSoup(r.text, "html.parser")

例如,它似乎没有显示任何有关病例和死亡的表格。

任何有关此的提示或文档/论坛将不胜感激!


tableau.js 库似乎加载了另一个从中获取数据的网址:

从那里开始,它非常类似于这个答案 https://stackoverflow.com/a/62106733/2614364 and this one https://stackoverflow.com/a/61976399/2614364您可以从其中提取 JSON 配置textarea标签。提取sessionid构建 URL 来获取数据:

import requests
from bs4 import BeautifulSoup
import json
import re

r = requests.get("https://public.tableau.com/views/COVID-19inMissouri/COVID-19inMissouri", 
    params = {
    ":embed": "y",
    ":showVizHome": "no",
    ":host_url": "https://public.tableau.com/",
    ":embed_code_version": 3,
    ":tabs": "no",
    ":toolbar": "no",
    ":animate_transition": "yes",
    ":display_static_image": "no",
    ":display_spinner": "no",
    ":display_overlay": "yes",
    ":display_count": "yes",
    ":language": "en",
    ":loadOrderID": 0
})
soup = BeautifulSoup(r.text, "html.parser")

tableauData = json.loads(soup.find("textarea",{"id": "tsConfigContainer"}).text)

dataUrl = f'https://public.tableau.com{tableauData["vizql_root"]}/bootstrapSession/sessions/{tableauData["sessionid"]}'

r = requests.post(dataUrl, data= {
    "sheet_id": tableauData["sheetId"],
})
dataReg = re.search('\d+;({.*})\d+;({.*})', r.text, re.MULTILINE)
info = json.loads(dataReg.group(1))
data = json.loads(dataReg.group(2))

print(data["secondaryInfo"]["presModelMap"]["dataDictionary"]["presModelHolder"]["genDataDictionaryPresModel"]["dataSegments"]["0"]["dataColumns"])

结果不是 JSON,因此需要使用正则表达式对其进行解析,以从中提取 JSON 配置,如上面的代码所示

在 repl.it 上运行这个 https://repl.it/@bertrandmartel/ScrapeTableauMissouri

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Tableau Public 仪表板中抓取数据 的相关文章

  • Socket:Python中的2路通信

    我想要在 Python 中进行双向通信 我想绑定到一个客户端可以连接的套接字 然后服务器和客户端可以彼此 聊天 我已经有了基本的监听器 import socket HOST localhost PORT 50008 s socket soc
  • 在python绑定/clang中的get-includes中解析cpp文件时过滤目录

    我应该编写一个 python clang 解析器 它返回 cpp 文件中的所有包含内容 所以我使用像下面的代码这样的东西 def main from clang cindex import Index from optparse impor
  • 更改 Django 中的表名称

    我读过 Django 中的表名可以使用自定义元选项 https docs djangoproject com en dev ref models options 我想知道如何使用 db table 选项来继续使用应用程序名称 但稍微修改模型
  • 如何在列表列表中找到元素和最大的列表?

    我有一个列表列表 x 1 2 3 4 5 6 7 8 9 2 2 0 我想得到列表中元素之和最大的列表 在这种情况下 7 8 9 我宁愿有一个幻想map or lambda或列表理解方法比for while if loop 此致 max提出
  • 使用 Scipy 将字典从 Python 保存到 Matlab

    我发现将整齐生成的数据保存到 mat 文件中时遇到一些问题 我认为使用 Scipy 更简单 但似乎我弄错了 这是我要保存的数据的示例 out features array 5 00088905e 01 1 51847522e 01 4 93
  • 即使为 pandas 指定编码,编码也是错误的

    我有一个包含重音字符的 CSV 文件 我用PyCharm和Sublime打开时检查了编码 它是西方的 Windows 1252或ISO 8859 1 我从此 CSV 创建一个 pandas 数据框 然后修改它 并将其导出到 UTF 8 文本
  • 使用 Keras RNN 模型使用较少时间步长(不同维度)的数据进行预测

    根据RNN的性质 我们可以得到每个时间戳 时间展开 的预测概率的输出 假设我训练一个具有 5 个时间步长的 RNN 每个时间步长有 6 个特征 因此我必须像这样指定第一层 假设我们使用具有 20 个节点的 LSTM 层作为第一层 model
  • 是否可以在所有平台上确定性地从 jpeg 文件中读取像素?

    我遇到一个问题 我发现 JPEG 图像中的像素可能会略有不同 具体取决于我用来读取它们的计算机 我主要是一名Python程序员 我更喜欢使用opencv来读取我的图像 但我不反对使用PIL做一些事情或用C读取图像 根据这篇文章JPEG 图像
  • 使用 bs4 进行 HTML 解析

    我正在解析一个 HTMl 页面 并且很难弄清楚如何在没有类或 id 的情况下提取某个 p 标签 我试图用经纬度到达 p 标签 这是我当前的代码 import bs4 from urllib import urlopen as uReq th
  • Pandas DataFrame 到列表列表

    将列表列表转换为 pandas 数据框很容易 import pandas as pd df pd DataFrame 1 2 3 3 4 5 但是如何将 df 转回列表列表呢 lol df what to do now print lol
  • 为什么“linkClicked(const QUrl&)”信号没有捕获鼠标左键的 QUrl?

    首先 我想澄清的是 这种奇怪的行为并不适用于每个网站 这是我的代码网页浏览器 https github com EricsonWillians Open Browser def compose tab self index self tab
  • Django - 旋转图像并保存

    我想在 django 中为图像添加 向左旋转 和 向右旋转 按钮 这似乎很容易 但我浪费了一些时间 尝试了在 stackoverflow 上找到的一些解决方案 但还没有结果 我的模型有一个 FileField class MyModel m
  • django value_list 外键中所有字段

    我有一个类 它有另一个类的外键 class MyEvent models Model msg models ForeignKey MyMessage event type models IntegerField choices EVENTS
  • IDA Python - 为什么我的代码返回不正确的 ESP 值?

    我制作了一个 ida python 代码 用于检查代码覆盖率 但是当我使用这个脚本时 我遇到了运行时错误 并且无法获得正确的 ESP 值 我的代码 from idaapi import class DbgHook DBG Hooks def
  • 上传大文件nginx + uwsgi

    堆栈 flask 0 10 uwsgi 1 4 5 nginx 1 2 3 我可以通过我的应用程序上传小文件 CONTENT LENGTH 无效 太大 跳过 nginx 日志没有显示任何有用的内容 我尝试了以下操作 但没有成功 nginx配
  • 使用 python 将数据复制到 Vertica

    I use python and vertica python图书馆到COPY数据到Vertica DB connection vertica python connect conn info vsql cur connection cur
  • 模板内嵌套 for 循环

    模型 py class Task models Model level models ForeignKey Level on delete models CASCADE todo models ForeignKey ToDo on dele
  • pyqt 中的代码编辑器示例

    我尝试学习一些Qt PyQt 为此 我使用了代码编辑器示例 http doc qt io qt 4 8 qt widgets codeeditor example html的文档 当前行的突出显示效果很好 但行号不显示 实际上LineNum
  • 来自 Abaqus/CAE 的 Python 多处理

    I am using a commercial application called Abaqus CAE1 with a built in Python 2 6 interpreter and API I ve developed a l
  • 使用 setuptools 从私有 Gitlab 包存储库安装 Python 包

    我为我的雇主创建了一个私人套餐 由于我被禁止将其上传到 PyPI 它是专有的 因此我将其上传到我们私人 Gitlab 中心上的项目的包索引中 我可以手动安装它 pip install my package extra index url h

随机推荐

  • C# 中的部分方法说明

    我很难理解的用法部分方法 您能否提供一个与 LINQ 或此类数据库无关的示例 部分方法是否与我们在 WinForms 中并在其后面进行编码时一样 如果我们使用一个方法 它会被编译 但如果我们不这样做 那么它会被编译器删除 那是对的吗 当您拥
  • Java Appengine APPSTATS 导致 java 内存不足错误

    我的 java appengine 应用程序中有几个 servlet 它们在内存中进行排序 并需要几秒钟的时间才能完成 这些完全没有错误 但是 我最近为 appengine 启用了 appstats 并开始收到以下错误 java lang
  • 从控制器访问 Liip Imagine 包 - 将服务分配给变量 (Symfony 4)

    On Symfony 4 如何从 PHP 代码中访问 Liip Imagine 包 https stackoverflow com questions 54543563 symfony 4 how do i access the liip
  • 我的标准差计算可以更加高效吗?

    我很好奇我的标准差方法是否可以变得更有效 我所说的高效是指快速 而快速是指从方法调用到方法返回的延迟 这是代码 public double stdDev ArrayList
  • 当本机应用程序启动时,将初始状态从 API 调用传递到 createStore

    当我的反应本机应用程序启动时 我在初始化 redux state 时遇到问题 我需要在应用程序启动之前进行 api 调用以检索数据以补充我的状态 我想将此调用的结果传递给我的 Provider JSX 元素中的 createStore 函数
  • Eclipse中的TFS比较(无法从左到右复制)

    我在 Eclipse 中遇到 TFS 问题 它工作得很好 但是当我尝试签入时 我被通知我发送的文件与服务器上存储的文件有冲突 我无法将更改从左侧 本地文件 复制到右侧 服务器 在比较窗口中 我只能从右到左复制 从左到右复制全部 和 从左到右
  • 在 ggplot 中为 R 中的分类变量 x 轴绘制垂直线时出现问题

    我有下表 我想使用每个县的 st date wk 列绘制一条垂直线 请参阅下面的代码 但它不会使用 st date wk 列绘制垂直线 无法弄清楚我在这里做错了什么 任何帮助表示赞赏 Thanks dfx1 YEAR Week Area a
  • iPhone 上的图像处理

    我想对 iPhone 拍摄的照片进行图像处理 该处理将涉及二维矩阵卷积等 我担心嵌套的性能NSArrays会很糟糕 操作基于像素的图像的正确方法是什么 我应该简单地使用分配的 C 数组吗malloc 你有没有看过石英二维 http deve
  • 从数组中获取特定长度的所有可能的字符串组合的算法

    从给定数组中获取具有最小和最大长度值的所有可能的字符串组合的最佳算法是什么 注意 这会增加复杂性 因为与这些链接到的问题不同 该值是可变的 例如 letters array a b c 1 2 3 min length 1 max leng
  • 导航栏标题视图对齐

    我希望我的导航栏在中间显示两件事 其中之一是列表名称 另一个是用户名称 用户名将放置在列表名称下 到目前为止我所做的是 我以编程方式创建了两个标签和一个超级视图 并设置titleView of navigationItem override
  • 如何检查Python中的列表列表中是否存在某个元素?

    我有一个与文件中的行相对应的列表列表 具有多列 col1 col2 col3 elem1 elem2 elem3 elem4 elem5 elem6 我想检查是否 例如 elem3位于任意列表中 如果在 则进入该列表 实际上我有一个需要检查
  • 超过 1 列具有 string_agg 的唯一值

    我正在尝试分组并获取多列的值列表 这是一个例子 City State Income Salem OH 40000 Salem OH 45000 Mason OH 50000 Dayton OH 60000 Salem MA 40000 Ma
  • VueJS:缓存http响应数据的最佳方法

    我正在寻找一个在 VueJS 中缓存 http 响应数据的最佳方法 现在我使用 Vuex Store 来我的博客 我想在请求到服务器时缓存所有响应数据 具体来说 这是我的博客 当我通过路由器请求数据到博客详细信息时1 3 4 我有响应数据
  • PowerShell - 从 .csproj 文件获取版本

    我正在学习 PowerShell 现在 我正在努力获得Version csproj 文件中的元素值 csproj 文件的 XML 如下所示
  • 讨论小 n 的计算复杂性的正确方法

    当讨论计算复杂度时 似乎每个人都会直接谈到 Big O 举例来说 我有一个混合算法 例如合并排序 它对较小的子数组使用插入排序 我相信这称为平铺合并排序 最终仍然是合并排序O n log n 但我想讨论小型算法的行为 特征n 在实际没有发生
  • 在 C# 中使用匿名类型创建对象文字时出现问题

    我正在尝试构建 JavaScript 对象文字的 C 近似值 以传递给 asp net MVC 中的视图模型 var obj new dynamic new name Id index Id width 40 align left new
  • 在控制器的 RequestMapping 中启用 ConditionalOnProperty

    我有一段代码 PropertySource value classpath securityConfig properties ignoreResourceNotFound true Controller public class Inde
  • 关于注释代码,您的“硬性规则”是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我看过其他问题但我仍然对这个主题的涵盖方式不满意 我想提取一份精简的列表 以便在代码检查时检查注释 我确信人们会说出一些只会互相抵消的话 但是
  • 检测用于构建 OSX 框架的 SDK 版本

    我需要检测哪个 SDK 版本用于构建 OSX 框架 任何有用的提示将不胜感激 弗洛里安 感谢您的提示解决了我的问题 我需要验证框架是否确实是使用 10 6 SDK 构建的 谢谢你的提示 我用otool解决了这个问题 如果链接到 10 6 S
  • 从 Tableau Public 仪表板中抓取数据

    我对从网站上抓取数据还很陌生 并且不知道如何从使用 Tableau Public 的网站上抓取数据 网站 https showmestrong mo gov data public health https showmestrong mo