python - 为什么 api 调用在 windows 和 linux 中返回不同的东西?
问题描述
我正在尝试从网站 api 中检索一些数据。它在我的 Windows 个人机器上运行良好,但是当我在 GCP 中使用另一个带有 Ubuntu 的 VM 时,它崩溃了
这是我的代码:
import requests
url = 'https://www.buda.com/api/v2/markets/ETH-COP/order_book'
answer = requests.get(url)
print(url.status_code)
print(url.txt)
在 Windows 中,这是输出
200
'{"order_book":{"asks":[["9300974.95","0.017059589"],["9300988.98","0.02104"],["9301000.0","0.0456"],["9304101.0","0.035"],["9305121.0","0.057411325"],["9488101.0","0.025"],["9491000.0","0.025"],["9596121.0","0.03"],["9766963.93","0.054399644"],["9887041.7","0.000146739"],["9887846.1","0.086726678"],["10000000.0","0.217447367"],["10042060.0","0.01"],["10102060.0","0.01248862"],["10149880.0","0.042914"],["10194000.0","0.095735001"],["10200000.0","0.020424454"]}}
这是带有 Ubuntu 的 GCP 虚拟机中的输出
[503]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Just a moment...</title>
<style type="text/css">
html, body {width: 100%; height: 100%; margin: 0; padding: 0;}
body {background-color: #ffffff; color: #000000; font-family:-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Helvetica Neue",Arial, sans-serif; font-size: 16px; line-height: 1.7em;-webkit-font-smoothing: ant
ialiased;}
h1 { text-align: center; font-weight:700; margin: 16px 0; font-size: 32px; color:#000000; line-height: 1.25;}
more html...
我怎样才能解决这个问题?
解决方案
该网站buda.com
受 CloudFlare 保护。
CloudFlare 允许来自您的 Windows 机器的网络连接的流量并拒绝来自您的 GCP VM 的流量。这可能是因为 CloudFlare 信任您的 Windows 机器的公共 IP 地址,但将您的 GCM VM 的 IP 与自动网络爬虫或其他不受欢迎的流量相关联。
如果您想buda.com
通过计算机程序访问,则需要通过 CloudFlare 或 buda.com 信任的 IP 地址进行连接。
或者,使用支持 JavaScript 的网络浏览器的人有时可以填写验证码并被允许继续访问受保护的网站。
推荐阅读
- python-3.x - 名称'count'未在python中定义
- c++ - 当我给出特定目标时,Clang 编译器找不到 C/C++ 标准库,尽管它可以在没有给出目标的情况下工作
- javascript - 如何在各自的列中正确显示渲染数据?
- sumo - 马路左侧的巴士站
- python - 如何拆分复杂的句子字符串,保留分隔符,但不将分隔符放在不应该的地方
- c++ - 在内核项目的字符串中合并换行符时自定义打印函数的输出无效
- r - 如何计算和标记R ggplot中多个条件/方面的分布峰值?
- javascript - React useEffect 问题
- sql - 如何将一个表中的每一行复制到另一个表中
- python - 在 python pandas 中分解出数据框的名称,以便更好地阅读数学表达式