使用python从图形中刮取工具提示

使用python从图形中刮取工具提示,python,web-scraping,graph,beautifulsoup,Python,Web Scraping,Graph,Beautifulsoup,我试图找出如何从中的图形中刮取工具提示值 我无法通过在chrome中检查任何图形元素来了解它们是如何呈现的。此外,以下语句返回的html似乎与我在chrome中看到的有所不同: r = requests.get("https://coronavirus.iowa.gov") 非常感谢您的帮助。数据是通过JavaScript动态加载的,因此解析有点复杂 您可以使用以下示例: import re import requests import json url = 'https://public.

我试图找出如何从中的图形中刮取工具提示值

我无法通过在chrome中检查任何图形元素来了解它们是如何呈现的。此外,以下语句返回的html似乎与我在chrome中看到的有所不同:

r = requests.get("https://coronavirus.iowa.gov")

非常感谢您的帮助。

数据是通过JavaScript动态加载的,因此解析有点复杂

您可以使用以下示例:

import re
import requests
import json

url = 'https://public.domo.com/embed/pages/dPRol'
url2 = 'https://public.domo.com/embed/pages/dPRol/stack?parts=metadata,datasources,drillPathURNs,domoapp'
url3 = 'https://public.domo.com/embed/pages/dPRol/cards/{urn}/render?parts=image,summary'
json_data = json.loads(json.loads(r'"{\"queryOverrides\":{\"filters\":[]},\"chartState\":{\"overrides\":{\"hide_annotation_list\":true}},\"transparent\":true,\"textColor\":\"#54585A\",\"scaleLineColor\":\"#D3D3D2\",\"imageMap\":true,\"pageLayout\":true,\"width\":793,\"height\":182,\"scale\":1,\"cardLoadContext\":{\"context\":\"page\",\"sessionId\":\"bb2fb992-d6cd-4a92-b21d-6e14a660b5e4\",\"visibilityState\":\"visible\",\"contextId\":\"dPRol\",\"trigger\":\"initial_load\"}}"'))
token = re.search(r"'x-domo-embed-token': '(.*?)'", requests.get(url).text).group(1)
data = requests.get(url2, headers={'x-domo-embed-token':token}).json()

# set search_for to one of following:
#   Individuals Tested
#   Individuals Positive
#   Total Recovered
#   Total Deaths
search_for = 'Individuals Tested'

for card in data['cards']:
    if card['title'] == search_for and \
       card['metadata']['chartType'] in ('badge_line_bar', 'badge_line_stackedbar'):
        urn = card['urn']
        break

final_data = requests.put(url3.format(urn=urn), json=json_data, headers={'X-DOMO-Embed-Token': token, 'X-Requested-With': 'XMLHttpRequest'} ).json()

for image in final_data['image']['jsonImageMap']:
    print(image['t'])
印刷品:

Individuals Tested on 2020-05-24 : 52,189
Individuals Tested on 2020-05-23 : 51,765
Individuals Tested on 2020-05-22 : 48,200
Individuals Tested on 2020-05-21 : 47,410
Individuals Tested on 2020-05-20 : 45,411
Individuals Tested on 2020-05-19 : 44,929
Individuals Tested on 2020-05-18 : 44,106
Individuals Tested on 2020-05-17 : 43,951
Individuals Tested on 2020-05-16 : 43,089
Individuals Tested on 2020-05-15 : 43,708
Individuals Tested on 2020-05-14 : 42,137
Individuals Tested on 2020-05-13 : 41,523
Individuals Tested on 2020-05-12 : 38,791
Individuals Tested on 2020-05-11 : 37,522

... and so on.

请显示您的预期输出,这将有助于找出答案。感谢您的回复-工作完美。一个问题:您使用了什么技术,或者在哪里确定url2将提供Chrome XHR部分中的调用(url3调用)所需的URN@dmornad我使用Firefox开发者工具-在网络选项卡中,我将所有请求下载为一个大型HAR归档文件,并在文本编辑器中查找该文件中获得最终值所需的请求。