首页 > 解决方案 > 无法使用 python 脚本获取 api 密钥

问题描述

我在 python 中创建了一个脚本,以从网页中获取不同sumbols的内容。values我使用此站点链接来收集所需的内容,但我注意到该页面的内容是动态生成的,因此我使用了我使用 chrome 开发工具收集的他们的api 。

有一个api_key与之相关的api

如何使用我使用 chrome 开发工具收集的脚本获取该 api 密钥?

到目前为止,我已经写过(工作完美):

import requests

url = "https://platform-api.flipsidecrypto.com/api/v1/metrics/FCAS/assets?"

params = {'api_key': '6e9c2808-0c48-41d8-81f1-5363d5ceb1af'}

res = requests.get(url,params=params)
for item in res.json():
    print(item['asset_name'],item['value'])

标签: pythonpython-3.xweb-scraping

解决方案


我不知道 Selenium 是否可以访问 DevTools,但我发现很少有方法可以工作。据我所知,旧版本可以访问浏览器菜单,但新版本不能,因此它也可能无法访问 DevTools。

  1. 键可以在某些文件 HTML 或 JS 中。脚本可以获取 HTML 和 HTML 中的搜索键。它还可以获取到 JS 的链接,加载它们并搜索关键字。但问题是如何识别钥匙——它可以在之后也可以api_key=不在。它也可以隐藏,即。使用base64。您必须先手动找到它,然后看看如何用钥匙识别位置。

  2. 运行本地代理服务器并配置浏览器以使用该服务器。我使用一些带有 GUI 的代理服务器来手动检查链接,但是有 python 代理服务器mitmpy (Man-In-The-Middle-Py),你可以在它运行时使用 python 来访问这个服务器

  3. 我不知道 Selenium 是否可以访问 Chrome/Firefox 中的 DevTools - 我从来不需要检查它。但也许有 Firefox 扩展可以将所有请求保存到文件(或者我可能会尝试使用 JavaScript 创建扩展),这样我就可以获得带有密钥的链接。这将是半自动化的方法。


推荐阅读