curl 采集查询百度数据 最近被屏蔽了如何解决

goimt 2017-12-04 11:21:54
如何如下,放在另一台服务器则正常,本地测试也正常,但放在以前旧的服务器,就提示要 验证码 (应该是查询太多了).
如何解决,能否发送伪装的IP
下面的这个114.80.166.230已改过,也没用

旧服务器 返回:{"msg":"\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801","status":"-7","error_code":"7"}


$com='ems';$nu='9751548742404';

$url = 'https://sp0.baidu.com/9_Q4sjW91Qh3otqbppnN2DJv/pae/channel/data/asyncqury?appid=4001&com='.$com.'&nu='.$nu.'&vcode=&token=&_='.time();


$cookie = tempnam("/tmp", "cookie");
$t = parse_url($url);


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$t[scheme]://$t[host]/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:114.80.166.230', 'CLIENT-IP:114.80.166.230'));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/114.80.166.230 Safari/536.11");
curl_exec($ch);


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:114.80.166.230', 'CLIENT-IP:114.80.166.230'));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/114.80.166.230 Safari/536.11");

$data = curl_exec($ch);
curl_close($ch);


print_r($data);
...全文
555 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tottyandbaty 2017-12-04
  • 打赏
  • 举报
回复
http://www.kuaidaili.com/free/ 这里你采集一大把,,, https://stackoverflow.com/questions/5211887/how-to-use-curl-via-a-proxy
goimt 2017-12-04
  • 打赏
  • 举报
回复
楼上试了,还是不行 如何用代理,比如: 61.135.217.7 80 无用户名密码 http 方式 完整代码是怎样的
tottyandbaty 2017-12-04
  • 打赏
  • 举报
回复

//此函数提供了国内的IP地址
function randIP(){
    $ip_long = array(
        array('607649792', '608174079'), //36.56.0.0-36.63.255.255
        array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
        array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
        array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
        array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
        array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
        array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
        array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
        array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
        array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
    );
    $rand_key = mt_rand(0, 9);
    $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
    $headers['CLIENT-IP'] = $ip;
    $headers['X-FORWARDED-FOR'] = $ip;

    $headerArr = array();
    foreach( $headers as $n => $v ) {
        $headerArr[] = $n .':' . $v;
    }
    return $headerArr;
}
 curl_setopt($curl, CURLOPT_HTTPHEADER, randIp());

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧