中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

基于curl數(shù)據(jù)采集之單頁面采集函數(shù)get_html的使用

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

大致大綱:

1.curl數(shù)據(jù)采集系列之單頁面采集函數(shù)get_html

2.curl數(shù)據(jù)采集系列之多頁面并行采集函數(shù)get_htmls

3.curl數(shù)據(jù)采集系列之正則處理函數(shù)get _matches

4.curl數(shù)據(jù)采集系列之代碼分離

5.curl數(shù)據(jù)采集系列之并行邏輯控制函數(shù)web_spider


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

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


最簡單的寫法:
復(fù)制代碼 代碼如下:
$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寫成函數(shù)的形式:
復(fù)制代碼 代碼如下:
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;
 }

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

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

會看到一片空白 什么也沒有 那么再利用curl_getinfo寫一個函數(shù) 看看發(fā)生了什么:
復(fù)制代碼 代碼如下:
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 重定向了 這時候就需要傳遞一些參數(shù)了:
復(fù)制代碼 代碼如下:
$url = 'http://www.163.com';
$options[CURLOPT_FOLLOWLOCATION] = true;
echo get_html($url,$options);

會發(fā)現(xiàn) 怎么是這樣的一個頁面 和我們電腦訪問的不同???

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

看來還要傳送USERAGENT
復(fù)制代碼 代碼如下:
$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現(xiàn)在頁面已經(jīng)出來了 這樣基本這個get_html函數(shù)基本能實(shí)現(xiàn)這樣擴(kuò)展的功能

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

這樣也可以正常的采集

php技術(shù)基于curl數(shù)據(jù)采集之單頁面采集函數(shù)get_html的使用,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 一级黄色录像片子 | 日本视频在线播放 | 精品一区二区三区在线视频 | 中文字幕在线免费观看 | 欧美成人在线网站 | 精品国产一区二区久久 | 国产精品成人一区二区三区 | 久久亚洲国产精品 | 成人三级影院 | 成人a免费| 亚洲精品国产电影 | 精品国产一区二区三区免费 | 青青草精品 | 国产成人一区在线 | 国产美女精品 | 成年精品 | 日韩精品一区二区三区中文在线 | 成人在线视频一区二区三区 | 国产日韩欧美激情 | 韩国欧洲一级毛片 | 久久久成人免费一区二区 | 一区二区三区日 | 欧美精品啪啪 | 男人天堂视频在线观看 | 性色视频 | 久久亚洲欧美日韩精品专区 | 欧美激情一区二区三区 | 亚洲精品久久嫩草网站秘色 | 成年免费在线观看 | av影音在线 | 麻豆视频在线免费观看 | 欧美日本久久 | 香蕉大人久久国产成人av | wwww.8888久久爱站网 | 欧美中文字幕一区 | 国产精品亚洲视频 | 久久精品亚洲精品国产欧美 | 久久这里只有精品首页 | 精品国产区| 欧美成人精品一区二区三区 | 久久伊 |