需要一些想法,我使用外部API(流放之路(并意外达到了最大请求限制,所以我的虚拟服务器现在被阻止(被Cloudflare阻止(。 当我现在想访问 api 时,我得到以下内容
"再走一步请完成安检才能访问 www.pathofexile.com">
ecetera ecetera 那么理论上谷歌验证码来了。
问题是我需要一个图形浏览器来解决验证码/安全检查,对吧?现在解决验证码的最佳解决方案是什么? 我正在考虑某种隧道连接我自己的浏览器并假装成服务器的方法,这可能吗?如果是,谷歌的关键字会有所帮助。
或者有人会建议一个更简单的解决方案,只能在控制台上运行?或者使用一个简单的 php 脚本,例如(file_put_contents在临时文件中,然后将其放入 iframe 中,但事先替换了一些 url/路径?
我想问题不在代码中,但这里是
$realm = "pc";
$league = "Standard";
$uiagent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36';
$poeurl = 'https://www.pathofexile.com/character-window/get-stash-items?league=' . $league . '&realm=' . $realm . '&accountName=' . $_COOKIE["accountname"] . '&tabs=0&tabIndex=' . $_GET['no'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $poeurl);
curl_setopt($ch, CURLOPT_USERAGENT, $uiagent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'POESESSID');
curl_setopt($ch, CURLOPT_COOKIEFILE,'/var/www/vhosts/XXXXXXXXX.de/www/html/poe/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIE, "POESESSID=b34637XXXXXXXXXXXXXXX");
curl_setopt($ch, CURLOPT_COOKIEFILE, '/var/www/vhosts/XXXXXXXXX.de/www/html/poe/cookie.txt');
$answer = curl_exec($ch);
if (curl_error($ch)) {
echo curl_error($ch);
} else {
echo $answer;
file_put_contents(getcwd() . "/cache/" . $_COOKIE["accountname"] . "/stash-" . $_GET['no'] . ".json", $answer);
}
> Finaly 解决了它
好吧,希望有一天它会帮助某人。 这是我解决问题的方式。
由于我可以通过 putty 进行 SSH 访问,因此我在 Firefox 中更改了连接设置以使用通过服务器的 putty 隧道,这样当我在 Firefox 中访问它时,目标 API 从服务器获取 IP,我可以解决验证码,出奇地简单。这里有一篇博客文章如何做到这一点: https://www.adamfowlerit.com/2013/01/using-firefox-with-a-putty-ssh-tunnel-as-a-socks-proxy/