我将从magiceden(一个solana市场)获取一些信息,如收藏名称、收藏底价。我使用了nodejs项目中的axios.get函数来获取这些信息。但它在2022年1月27日之前有效,但现在无效。测试代码可以在这里看到。
axios.get("https://api-mainnet.magiceden.io/new_collections", {
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"User-Agent": "Mozilla/5.0",
},
}).then((res) => {
console.log(res.data);
}).catch((err) => {
console.log(err.message);
});
我看到了返回的结果,所以我知道Cloudflare返回了403错误。所以我尝试设置请求头信息。我尝试了下面的头信息。
headers: {
'accept': 'application/json, text/plain, */*',
'accept-language': 'en-US,en;q=0.9',
'if-none-match': 'W/"2666-Zk3Sie7K34jZXASeZMxutI02+C4"',
'origin': 'https://magiceden.io',
'referer': 'https://magiceden.io/',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36',
}
但是现在还是不行,请帮帮我。
2条答案
按热度按时间lstz6jyr1#
你的代码对我来说没有任何修改。
您收到此错误很可能是因为CloudFlare认为您的IP地址“可疑”(您是否频繁地发出请求?)。很可能在403消息的正文中有更多的细节,例如一条消息说您应该完成验证码。要解决此问题,请尝试查找此类细节,更改您的IP地址或等待一段时间:)
你不能“绕过”CloudFlare,这是使用CloudFlare的全部要点--除非网站所有者有一些错误的配置,否则有办法绕过它。
也许网站所有者并不想对这个特定的API有如此严格的限制?也许联系他们放宽限制可能是一个解决方案?
brgchamk2#
您只需将顶级域从
.io
更改为.dev