我是新的网站数据抓取,所以我有一些问题需要答案。我一直在寻找一个答案,但不适合我。
我正试图从这个网站获取covid-19数据:https://ncov.vncdc.gov.vn/viet-nam-full.html
通常我在浏览器中使用Inspect从网站获取API URL,这是有效的。
但在过去的几天里,他们似乎添加了某种令牌,这仍然允许我在网站上看到数据,但不可能在没有令牌的情况下使用get请求获取数据。
例如:API链接
在过去,我可以使用下面的代码来获取数据,并在必要时修改参数来改变数据范围。
import requests
url = 'https://ncov.vncdc.gov.vn/v2/vietnam/report-epi-province?start_time=2021-04-27&end_time=2021-09-25&province_ids=&district_ids=&get_time=1632547194551'
response = requests.get(url).json()
#change parameters
url = 'https://ncov.vncdc.gov.vn/v2/vietnam/report-epi-province?start_time={}&end_time={}&province_ids=&district_ids=&get_time=1632547194551'.format(date1,date2)
但现在它需要我输入某种令牌,我从检查模式的请求头获取相同的数据,这是不可能改变日期来获取数据了
例如:x-data-token
import requests
url = 'https://ncov.vncdc.gov.vn/v2/vietnam/report-epi-province?start_time=2021-04-27&end_time=2021-09-25&province_ids=&district_ids=&get_time=1632547194551'
headers = {'x-data-token':'1cbcaa3e3be7546058beb7a981921784'}
response = requests.get(url,headers=headers).json()
当我尝试更改url中的日期时,它只返回'令牌无效'。
我需要帮助的是如何使用Python自动获得此令牌(我不想每次打开浏览器并复制令牌)并获得具有不同参数值(日期)的数据。
如果有人能告诉我一个更好的方法。我会很优雅的。这是我的第一个帖子,我是新手,所以我尽了最大的努力来解释这个情况。非常感谢。
看起来x-data-token
标头是在主JavaScript文件中创建的。不幸的是,这意味着您必须计算JavaScript代码来生成令牌。这里有一些工具可能会有所帮助。
- dukpy
- SlimIt