Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从一个动态加载的表格画布(我想…)页面中删除与冠状病毒相关的数据_Python_Selenium_Web Scraping_Screen Scraping - Fatal编程技术网

Python 从一个动态加载的表格画布(我想…)页面中删除与冠状病毒相关的数据

Python 从一个动态加载的表格画布(我想…)页面中删除与冠状病毒相关的数据,python,selenium,web-scraping,screen-scraping,Python,Selenium,Web Scraping,Screen Scraping,我会非常高兴地发现这个问题是重复的,但如果是这样的话——我找不到那个问答 有一个神秘的页面从包含死亡的县和年龄组。正如标题所示,它包含两个按县/按年龄组列出的表格 出于某种奇怪的原因,此页面上的数据是超级安全的。无法选择,无法保存页面,也无法打印。数据不在页面源上。我还尝试检查xhr调用中的数据,但失败了 显然,请求和beautifulsoup无法处理它。我试过常用的硒咒语,所以,除非别人告诉我,否则我不会用我试过的片段把这个问题弄得乱七八糟 Desire output:这两个表中的数据,可以是

我会非常高兴地发现这个问题是重复的,但如果是这样的话——我找不到那个问答

有一个神秘的页面从包含死亡的县和年龄组。正如标题所示,它包含两个按县/按年龄组列出的表格

出于某种奇怪的原因,此页面上的数据是超级安全的。无法选择,无法保存页面,也无法打印。数据不在页面源上。我还尝试检查xhr调用中的数据,但失败了

显然,请求和beautifulsoup无法处理它。我试过常用的硒咒语,所以,除非别人告诉我,否则我不会用我试过的片段把这个问题弄得乱七八糟

Desire output:这两个表中的数据,可以是任何可能的格式

我能想到的唯一一件事就是截图并尝试ocr图像


我不知道是Selenium,Tableau,纽约州卫生部还是我,但现在是时候召集重炮了…

让我为你解释一下情况:

网站正在该参数X-session-id后面生成会话id,该参数在您访问页面索引时动态生成。所以我通过GET请求调用它,并从headers响应中获取它。 我已经找到了一个POST请求,它是在你点击你想要的url之前自动生成的,它实际上使用了我们之前收集的会话id。给你https://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/clear/sessions/{会话id}

现在我们可以给你的目标打电话https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities?%3Aembed=yes&%3Atoolbar=no&%3Atabs=n.

现在我注意到对后端API的另一个XHR请求。但是在我们调用之前,我们将解析HTML内容以拾取时间对象,该对象负责从API中新生成数据,因此我们将得到即时数据,将其视为实况聊天。在我们的例子中,它位于HTML中lastUpdatedAt的后面

我还注意到,我们需要获取从上一个POST请求生成的最近的X-Session-Id

现在,我们将使用拾取的会话拨打电话https://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/bootstrapSession/sessions/{session}

现在我们已经收到了充分的答复。你可以解析它或者做任何你想做的事情

导入请求 进口稀土 数据={ “工作表端口大小”:“{w:1536,h:1250}”, “dashboardPortSize”:“{w:1536,h:1250}”, 'clientDimension':'{w:1536,h:349}', “renderMapsClientSide”:“true”, 'isBrowserRendering':'true', 'browserRenderingThreshold':'100', 'FormatDataValueLocal':'false', “clientNum”:, “导航类型”:“重新加载”, “navSrc”:“顶部”, “devicePixelRatio”:“2.5”, “clientRenderPixelLimit”:“25000000”, “allowAutogenWorksheetPhoneLayouts':“true”, “表id”:“纽约市卫生部%20COVID-19%20Tracker%20-%20死亡事故”, 'showParams':“{checkpoint:false,refresh:false,refreshUnmodified:false}”, “filterTileSize”:“200”, “locale”:“en_US”, ‘语言’:‘en’, '详细模式':'错误', “:session_feature_flags”:“{}”, “钥匙链_版本”:“1” } def主URL: 带请求。会话作为请求: r=所需姿势 sid=r.headers.getX-Session-Id r=要求的职位 fhttps://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/clear/sessions/{sid} r=req.get https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities?%3Aembed=yes&%3Atoolbar=no&%3Atabs=n match=re.searchrllastUpdateDat.+?\d+,r.text.group1 时间=“{featureFlags:{\MetricsAuthoringBeta\:false},isAuthoring:false,IsofLifeMode:false,lastUpdatedAt:xxx,workbookId:9}”。替换 'xxx',f{match} 数据['stickySessionKey']=时间 nid=r.headers.getX-Session-Id r=要求的职位 fhttps://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/bootstrapSession/sessions/{nid},data=data 打印文本 mainhttps://covid19tracker.health.ny.gov
让我为您解释一下情况:

网站正在该参数X-session-id后面生成会话id,该参数在您访问页面索引时动态生成。所以我通过GET请求调用它,并从headers响应中获取它。 我已经找到了一个POST请求,它是在你点击你想要的url之前自动生成的,它实际上使用了我们之前收集的会话id。给你https://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/clear/sessions/{会话id}

现在我们可以称你的目标为 shttps://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities?%3Aembed=yes&%3Atoolbar=no&%3Atabs=n.

现在我注意到对后端API的另一个XHR请求。但是在我们调用之前,我们将解析HTML内容以拾取时间对象,该对象负责从API中新生成数据,因此我们将得到即时数据,将其视为实况聊天。在我们的例子中,它位于HTML中lastUpdatedAt的后面

我还注意到,我们需要获取从上一个POST请求生成的最近的X-Session-Id

现在,我们将使用拾取的会话拨打电话https://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/bootstrapSession/sessions/{session}

现在我们已经收到了充分的答复。你可以解析它或者做任何你想做的事情

导入请求 进口稀土 数据={ “工作表端口大小”:“{w:1536,h:1250}”, “dashboardPortSize”:“{w:1536,h:1250}”, 'clientDimension':'{w:1536,h:349}', “renderMapsClientSide”:“true”, 'isBrowserRendering':'true', 'browserRenderingThreshold':'100', 'FormatDataValueLocal':'false', “clientNum”:, “导航类型”:“重新加载”, “navSrc”:“顶部”, “devicePixelRatio”:“2.5”, “clientRenderPixelLimit”:“25000000”, “allowAutogenWorksheetPhoneLayouts':“true”, “表id”:“纽约市卫生部%20COVID-19%20Tracker%20-%20死亡事故”, 'showParams':“{checkpoint:false,refresh:false,refreshUnmodified:false}”, “filterTileSize”:“200”, “locale”:“en_US”, ‘语言’:‘en’, '详细模式':'错误', “:session_feature_flags”:“{}”, “钥匙链_版本”:“1” } def主URL: 带请求。会话作为请求: r=所需姿势 sid=r.headers.getX-Session-Id r=要求的职位 fhttps://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/clear/sessions/{sid} r=req.get https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities?%3Aembed=yes&%3Atoolbar=no&%3Atabs=n match=re.searchrllastUpdateDat.+?\d+,r.text.group1 时间=“{featureFlags:{\MetricsAuthoringBeta\:false},isAuthoring:false,IsofLifeMode:false,lastUpdatedAt:xxx,workbookId:9}”。替换 'xxx',f{match} 数据['stickySessionKey']=时间 nid=r.headers.getX-Session-Id r=要求的职位 fhttps://covid19tracker.health.ny.gov/vizql/w/NYS-COVID19-Tracker/v/NYSDOHCOVID-19Tracker-Fatalities/bootstrapSession/sessions/{nid},data=data 打印文本 mainhttps://covid19tracker.health.ny.gov 我做了一个从表格工作表中提取数据的步骤

您可以使用以下代码获取每个工作表的dataframe中的所有数据:

从tableauscraper导入tableauscraper作为TS url=https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities ts=ts 荷包苏尔酒店 dashboard=ts.get工作簿 对于dashboard.worksheet中的t: 显示工作表名称 打印工作表名称:{t.NAME} 显示此工作表的数据框 打印数据 我做了一个从表格工作表中提取数据的步骤

您可以使用以下代码获取每个工作表的dataframe中的所有数据:

从tableauscraper导入tableauscraper作为TS url=https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities ts=ts 荷包苏尔酒店 dashboard=ts.get工作簿 对于dashboard.worksheet中的t: 显示工作表名称 打印工作表名称:{t.NAME} 显示此工作表的数据框 打印数据
尝试发送post http请求以获取json内容。@我完全不知道该评论。杰克对刮削领域并不陌生!如果可以的话。这样做比重定向到其他资源要好。尝试发送post http请求以获取json内容。@asmitu您根本不知道该评论。杰克对刮削领域并不陌生!如果可以的话。做得比重定向到其他资源更好我不知道你是怎么弄明白这一切的-我向你致敬!谢谢-我也学到了一些新东西。@JackFleeting you welcome:P只要每天给网络打电话就行了。此外,我以前也与许多.gov网站合作过:@JackFleeting哇,这太棒了,谢谢你,艾哈迈德@JackFleeting你知道如何解析结果了吗?我正在尝试获取类似的数据,但无法完全弄清楚数据是如何存储的。我不知道你是如何弄清楚这一切的——我向你致敬!谢谢-我也学到了一些新东西。@JackFleeting you welcome:P只要每天给网络打电话就行了。此外,我以前也与许多.gov网站合作过:@JackFleeting哇,这太棒了,谢谢你,艾哈迈德@JackFleeting你知道如何解析结果了吗?我试图获得类似的数据,但无法完全弄清楚数据是如何存储的。