【发布时间】:2021-05-20 03:36:28
【问题描述】:
我正在尝试从此网页中提取“Company & Tests”值:https://public.tableau.com/views/v_7_14_2020/COVID-19TestingCommons
首选输出是包含公司和每个公司的测试数量的数组。
还有另一个帖子 (How can I scrape tooltips value from a Tableau graph embedded in a webpage) 有类似的问题..
我尝试使用它,但在我的情况下它不起作用
谢谢。
import requests
from bs4 import BeautifulSoup
import json
import time
data_host = "https://public.tableau.com"
r = requests.get(
f"{data_host}/views/v_7_14_2020/COVID-19TestingCommons",
params= {
":showVizHome":"no",
}
)
soup = BeautifulSoup(r.text, "html.parser")
tableauData = json.loads(soup.find("textarea",{"id": "tsConfigContainer"}).text)
dataUrl = f'{data_host}{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"])
【问题讨论】:
标签: python web-scraping tableau-api dashboard scrape