Joe*_*Mac 1 html php curl recaptcha web-scraping
我正在创建一个供个人使用的网络抓取工具,它根据我的个人输入抓取汽车经销商网站,但我尝试从被重定向验证码页面阻止的几个网站收集数据。我正在用 curl 抓取的当前站点返回此 HTML
<html>
<head>
<title>You have been blocked</title>
<style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style>
</head>
<body style="margin:0">
<p id="cmsg">Please enable JS and disable any ad blocker</p>
<script>
var dd={'cid':'AHrlqAAAAAMA1gZrYHNP4MIAAYhtzg==','hsh':'C0705ACD75EBF650A07FF8291D3528','t':'fe','host':'geo.captcha-delivery.com'}
</script>
<script src="https://ct.captcha-delivery.com/c.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我正在使用它来抓取页面:
<?php
function web_scrape($url)
{
$ch = curl_init();
$imei = "013977000272744";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_COOKIE, '_ym_uid=1460051101134309035; _ym_isad=1; cxx=80115415b122e7c81172a0c0ca1bde40; _ym_visorc_20293771=w');
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'imei' => $imei,
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
return $server_output;
curl_close($ch);
}
echo web_scrape($url);
?>
Run Code Online (Sandbox Code Playgroud)
并重申我想做的事情;我想从此页面收集 Recaptcha,因此当我想查看外部站点上的页面详细信息时,我可以在我的外部站点上填写 Recaptcha,然后抓取最初输入的页面。任何回应都会很棒!
看到 Stack Overflow 上的社区没有费心回答我的问题,我不得不经过数小时的反复试验并找到了解决方案。我想既然我真的想造福社区,我会回答我自己的问题:
这里的问题是我正在抓取的网站设置了抓取工具检测,而不是我之前认为的重新验证码。因此,在对我的刮板进行一些修补后,我设法使其能够绕过站点检测。看到没有其他人遇到此问题,我不会费心共享代码,但我必须更好地将我的刮刀表示为实际的浏览器。
如果其他人发现自己遇到此类问题,请随时与我联系,我将分享我的一些代码。