Heim >php教程 >PHP开发 >Verwenden Sie Curl, um eine einfache Baidu-Suche zu erstellen

Verwenden Sie Curl, um eine einfache Baidu-Suche zu erstellen

高洛峰
高洛峰Original
2016-11-03 13:26:541250Durchsuche

In den letzten Tagen habe ich die Curl-Bibliothek in PHP studiert und eine einfache Baidu-Suche durchgeführt. Zuerst habe ich den Code eingegeben

<div style="width:200px;height:100px;">
    <div>百度搜索</div>
    <form action="" method="get">
        <input type="text" name="key">
        <input type="submit" value="搜索">
    </form>
</div>
<?php
$k = &#39;&#39;;
$k = !empty($_GET[&#39;key&#39;])?$_GET[&#39;key&#39;]:&#39;&#39;;
session_start();
$_SESSION[&#39;key&#39;] = $k;

$curl = curl_init(); 
// 设置你需要抓取的URL 

for($i = 0;$i<2;$i++){
curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com/s?wd={$_SESSION[&#39;key&#39;]}&pn={$i}"); 
// 设置header 
curl_setopt($curl, CURLOPT_HEADER, 1); 
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
// 运行cURL,请求网页 
$data = curl_exec($curl); 

$pre = &#39;/<h3 class="t"><a.*?href = "(.*?)".*?target="_blank".*?>(.*?)<\/a><\/h3>/s&#39;;
preg_match_all($pre,$data,$match);

foreach ($match[1] as $k => $v) {
?>    
<div style="font-size:20px;color:red;">
    <a href="<?php echo $v;?>" target="_blank"><?php echo strip_tags($match[2][$k]);?></a>
</div>
<?php
}
}

curl_close($curl);


?>

Nachdem ich die URLs in Baidu-Suchen analysiert habe, habe ich eine gefunden Muster

https://www.baidu.com/s?wd=Suchschlüsselwörter

Aber ich stellte fest, dass ich die Daten auf Baidu nach Verwendung des https-Protokolls nicht erhalten konnte, also habe ich geändert in http://www .baidu.com?wd=Einfach nach Schlüsselwörtern suchen!!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn