使用PHP的curl爬取百度搜索页相关搜索词
生活随笔
收集整理的這篇文章主要介紹了
使用PHP的curl爬取百度搜索页相关搜索词
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用PHP獲取百度搜索的第一個相關(guān)搜索詞
詳細代碼如下
$key_word = urlencode('王者榮耀');//需要對關(guān)鍵詞進行url解析,否者部分帶字符的標(biāo)題會返回空 $url = 'https://www.baidu.com/s?ie=UTF-8&wd='.$key_word;$res = curl_request($url);$reach_word = substr($res,strpos($res, '<div id="rs"><div class="tt">相關(guān)搜索'),strpos($res, '<div id="page" >')-strpos($res, '<div id="rs"><div class="tt">相關(guān)搜索') );//截取需要的內(nèi)容preg_match('/<a.*?">(.*?)<\/a>/', $reach_word,$match);//正則匹配第一個搜索詞 $reach_word = @$match[1];//curl獲取百度內(nèi)容 function curl_request($url, $data=null, $method='get', $https=true){$ch = curl_init();//初始化curl_setopt($ch, CURLOPT_URL, $url);//訪問的URLcurl_setopt($ch, CURLOPT_HEADER, false);//設(shè)置不需要頭信息curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只獲取頁面內(nèi)容,但不輸出if($https){curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https請求 不驗證證書 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https請求 不驗證HOST}curl_setopt($ch,CURLOPT_ENCODING,'gzip');//百度返回的內(nèi)容進行了gzip壓縮,需要用這個設(shè)置解析//curl模擬頭部信息curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: */*','Accept-Encoding: gzip, deflate, br','Accept-Language: zh-CN,zh;q=0.9,en;q=0.8','Connection: keep-alive','Host: www.baidu.com','is_referer: https://www.baidu.com/','is_xhr: 1','Referer: https://www.baidu.com/','User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36','X-Requested-With: XMLHttpRequest',));if($method == 'post'){curl_setopt($ch, CURLOPT_POST, true);//請求方式為post請求curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//請求數(shù)據(jù)}$result = curl_exec($ch);//執(zhí)行請求curl_close($ch);//關(guān)閉curl,釋放資源$result = mb_convert_encoding($result, 'utf-8', 'GBK,UTF-8,ASCII,gb2312');//百度默認(rèn)編碼是gb2312 這個設(shè)置轉(zhuǎn)化為utf8編碼return $result; }?
總結(jié)
以上是生活随笔為你收集整理的使用PHP的curl爬取百度搜索页相关搜索词的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue入门(一)----工程vue_se
- 下一篇: Excel中使用F-检验