一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

基于curl數據采集之單頁面采集函數get_html的使用

這是一個系列 沒辦法在一兩天寫完 所以一篇一篇的發布

大致大綱:

1.curl數據采集系列之單頁面采集函數get_html

2.curl數據采集系列之多頁面并行采集函數get_htmls

3.curl數據采集系列之正則處理函數get _matches

4.curl數據采集系列之代碼分離

5.curl數據采集系列之并行邏輯控制函數web_spider


單頁面采集在數據采集過程中是最常用的一個功能 有時在服務器訪問限制的情況下 只能使用這種采集方式 慢 但是可以簡單的控制 所以寫好一個常用的curl函數調用是很重要的

百度和網易比較熟悉 所以拿這兩個網站首頁采集來做例子講解


最簡單的寫法:
復制代碼 代碼如下:
$url = 'http://www.baidu.com';
 $ch = curl_init($url);
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
 curl_setopt($ch,CURLOPT_TIMEOUT,5);
 $html = curl_exec($ch);
 if($html !== false){
     echo $html;
 }

由于使用頻繁 可以利用curl_setopt_array寫成函數的形式:
復制代碼 代碼如下:
function get_html($url,$options = array()){
     $options[CURLOPT_RETURNTRANSFER] = true;
     $options[CURLOPT_TIMEOUT] = 5;
     $ch = curl_init($url);
     curl_setopt_array($ch,$options);
     $html = curl_exec($ch);
     curl_close($ch);
     if($html === false){
         return false;
     }
     return $html;
 }

復制代碼 代碼如下:
$url = 'http://www.baidu.com';
echo get_html($url);

有時候需要傳遞一些特定的參數才能得到正確的頁面 如現在要得到網易的頁面:
復制代碼 代碼如下:
$url = 'http://www.163.com';
echo get_html($url);

會看到一片空白 什么也沒有 那么再利用curl_getinfo寫一個函數 看看發生了什么:
復制代碼 代碼如下:
function get_info($url,$options = array()){
     $options[CURLOPT_RETURNTRANSFER] = true;
     $options[CURLOPT_TIMEOUT] = 5;
     $ch = curl_init($url);
     curl_setopt_array($ch,$options);
     $html = curl_exec($ch);
     $info = curl_getinfo($ch);
     curl_close($ch);
     return $info;
 }
 $url = 'http://www.163.com';
 var_dump(get_info($url));

可以看到http_code 302 重定向了 這時候就需要傳遞一些參數了:
復制代碼 代碼如下:
$url = 'http://www.163.com';
$options[CURLOPT_FOLLOWLOCATION] = true;
echo get_html($url,$options);

會發現 怎么是這樣的一個頁面 和我們電腦訪問的不同???

看來參數還是不夠 不夠服務器判斷我們的客戶端是什么設備上的 就返回了個普通版

看來還要傳送USERAGENT
復制代碼 代碼如下:
$url = 'http://www.163.com';
 $options[CURLOPT_FOLLOWLOCATION] = true;
 $options[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0';
 echo get_html($url,$options);

 

OK現在頁面已經出來了 這樣基本這個get_html函數基本能實現這樣擴展的功能

當然也有另外的辦法可以實現,當你明確的知道網易的網頁的時候就可以簡單采集了:
復制代碼 代碼如下:
 $url = 'http://www.163.com/index.html';
 echo get_html($url);

這樣也可以正常的采集

php技術基于curl數據采集之單頁面采集函數get_html的使用,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美成人全部免费观看1314色 | 亚洲一区二区免费在线观看 | 国产欧美另类久久久品 | 日本乱中文字幕系列在线观看 | 国产成人精品一区二三区 | 色综合色综合色综合色综合 | 91久久精品一区二区 | 久热99这里只有精品视频6 | 91国内视频 | 免费看黄色录像片 | 国产xxx在线 | 国产91在线视频 | 久久综合88 | 久久久久久午夜精品 | 一级做a爰片性色毛片小说 一级做a爰片性色毛片新版的 | 午夜激情视频在线播放 | 一本大道加勒比久久综合 | 欧美一级特黄一片免费 | 亚洲激情第二页 | 激情六月天婷婷 | 国产高清网站 | 涩涩色中文综合亚洲 | 日韩美女一级视频 | 亚洲国产天堂久久九九九 | 国产精品视频第一区二区三区 | 美妇乱人伦性 | 中文字幕一区二区三区在线观看 | 日韩激情视频网站 | 日本在线www | 久久人| 国产99网站 | 怡红院精品视频 | 久久久亚洲精品蜜桃臀 | 香蕉久人久人青草青草 | 黄色片视频在线播放 | 久久综合网久久综合 | 在线观看亚洲精品国产 | 中文字幕日韩欧美一区二区三区 | 99热精品成人免费观看 | 丁香婷婷在线视频 | 四虎永久在线观看免费网站网址 |