2016-02-12 50 views
0

我写在本地主机的PHP 这个代码的工作,但在主机不工作在指数如何在谷歌与卷曲的PHP搜索

function cURL($url, $ref, $header, $cookie, $p){ 
    $ch = curl_init();//start curl 
    curl_setopt($ch, CURLOPT_URL, $url);   //curl Targeted URL 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
    curl_setopt($ch, CURLOPT_REFERER, $ref);  //fake referer 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  
    if ($p) { 
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $p); 
    } 
    $result = curl_exec($ch); 
    curl_close($ch); 
    if ($result){ 
     return $result; 
    }else{ 
     return ''; 
    } 
} 

使用:

$file = cURL('https://www.google.com/search?num=30&hl=en&q=phpscript','http://www.google.ru',0,0,null); 
+1

什么不行?你得到什么错误? – cmorrissey

+0

谷歌积极监控并防止他们的内容被刮掉......世界上最大的数据刮板产生一些讽刺意味,但即使你得到这个工作,它也只会在极其有限的时间内这样做。从尝试过的人那里拿出来。 –

+0

使用代理摆脱此方式 –

回答

0

您的主机可能会阻止机器人(?)简化了一点 - 但这对我有用:

<?php 
/** 
* Created by CompuSolver.com. 
* User: Hank Castello 
* Date: 6/20/16 
* Time: 10:27 AM 
*/ 
function curlGet($url, $header){ 
    $ch = curl_init();//start curl 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_URL, $url);   //curl Targeted URL 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.8 [en] (Windows NT 5.1; U)'); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 

    $result = curl_exec($ch); 
    $httpResponse = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    return $result; 
} 
$targetURL = 'https://www.google.com/search?num=100&newwindow=1&site=&source=hp&q=web+developers&oq=web+developers&gs_l=hp.3..0l10.1547.5649.0.6045.15.11.0.4.4.0.115.760.8j1.9.0....0...1c.1.64.hp..2.12.714.0..0i131j0i3.xUKoFB0hpKM'; 
$header = array('Accept-Language: en-us,en;q=0.7,bn-bn;q=0.3','Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'); 
$responsePg = curlGet($targetURL, $header); 
echo $responsePg;