国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > PHP > 正文

PHP爬蟲技術(一)

2020-03-22 19:44:36
字體:
來源:轉載
供稿:網友
  • 摘要:本篇文章介紹PHP抓取網頁內容技術,利用PHPcURL擴展獲取網頁內容,還可以抓取網頁頭部,設置cookie,處理302跳轉。

    一、cURL安裝

    采用源碼安裝PHP時,需要在configure時添加配置項,

    cdphp

    ./configure--with-curl

    安裝完畢,可以利用php-m命令查看,是否已經支持cURL擴展。

    php-m|grepcurl

    也可以利用phpinfo查看,是否已經支持cURL擴展。

    二、獲取網頁內容

    cURL支持很多網絡協議,如HTTP、HTTPS、FTP等。普通網頁采用HTTP協議,一些安全性高的網頁采用HTTPS(HTTPS協議采用數據加密技術,通過公鑰技術交換密鑰,加密傳輸內容。因此采用HTTPS協議的網頁,在整個鏈路上傳輸的都是加密后的數據。例如Baidu采用HTTPS協議,你輸入的關鍵字被網絡傳輸協議加密,即使是運營商可以獲得全部數據,也無法獲得數據的內容。HTTPS協議也有缺點,就是加解密需要耗費計算時間,因此HTTPS網站會慢一些,而大多數網站都是采用HTTP協議)。HTTP協議中,定義了兩種方法GET和Z喎?http://www.it165.net/pro/pkqt/" target="_blank" html' target='_blank'>class="keylink">QT1NUoaNQT1NUt723qM2os6PTw9Pase21pczhvbujrMTcubvM4b27zsS8/rXItPPK/b7doaNHRVS3vbeo08PAtLvxyKHN+NKzyv2+3aOs0rK/ydLUzOG9u8nZwb/K/b7doaOxvs7E1vfSqr3pydzA+9PDR0VU0K3S6bvxyKHN+NKzyv2+3aOsvavAtNTZz+rPuL2yveJjVVJMJm5ic3A7UE9TVLy8yvWhozwvcD4KPHA+ztLDx8/Iv7TSu9Cp5K/AwMb3ysfU9cO0uaTX97XEo6y08r+qY2hyb21l5K/AwMb3o6xGMTK9+Mjrv6q3otXfxKPKvaOsvau5pL7fwLjH0Lu7tb1uZXR3b3Jro6zI58/CzbyjrMD708NjaHJvbWW5pL7fv8nS1LLpv7TDv7j2zsS8/rXEtKvK5NDFz6KhozwvcD4KPHA+PGltZyBzcmM9"http://www.it165.net/uploadfile/files/2015/0605/20150605193650340.png" alt="" width="842" height="577" />

    瀏覽器要加載一個網頁,首先下載html文件,再下載js、css、圖片等資源文件再進行渲染加載。通常數據抓取只需要抓取html文件,下圖是chrome工具顯示下載http文件的內容。

    三、PHP實現

    <?php$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "www.qq.com");curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);$html = curl_exec($ch);curl_close($ch);var_dump($html);?>

    基本設置,返回網頁內容。

    四、獲得HTTP頭部設置cookie

    有些網站,會采用cookie技術。當采集程序沒帶有相關cookie時,很容易被網站認定是“機器人”,拒絕對其服務。通過chrome調試www.sogou.com,發現cookie是包含在網頁頭信息中的。因此,我們需要兩個步驟(1)HTTP頭信息中獲取cookie(2)發送請求時添加cookie。

    頭信息包含設置cookie,

    刷新網頁,查看頭信息,請求包含cookie信息

    獲取cookie

    <?php    $url = "www.sogou.com";    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_NOBODY, true);    curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $str) use(&$setcookie) {      // 第一個參數是curl資源,第二個參數是每一行獨立的header!      list ($name, $value) = array_map('trim', explode(':', $str, 2));      $name = strtolower($name);      if('set-cookie'==$name)      {        $setcookie[]=$value;      }      return strlen($str);    });    curl_exec($ch);    curl_close($ch);    $cookie = array();    foreach($setcookie as $c)    {      $tmp = explode(";",$c);      $cookie[] = $tmp[0];    }    $cookiestr = "Cookie:".implode(";", $cookie);    echo $cookiestr;?>

    返回結果

    Cookie:ABTEST=0|1433425917|v17;IPLOC=CN1100;SUID=3295CB6F1220920A00000000557057FD

    設置cookie

    <?php$url = "www.sogou.com";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);$headers[] = $cookie;curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);$html = curl_exec($ch);curl_close($ch);var_dump($html);?>

    五、抓取302跳轉

    在Baidu中搜索關鍵詞,返回的結果鏈接是一個Baidu加密過的鏈接,通過二次跳轉才是真正的網址。(Baidu為了防止360抓取,把結果都加密了)。

    我們可以抓取頭部中的location信息找到真實地址,

    <?php    $url = "https://www.baidu.com/link?url=b34APzBjz-cGLoxsG4-nviHmtVS0tCvEftS6ApCAsojT1a0h9oFFPprwK4JpNYgGaQE29QPUtRdPUeu3lIz2M7GW7dqLMi5ytlHLOVa3v_VY23dOoRiUSyV9zr_cI8Rg&wd=&eqid=c89cf372000002cc0000000255705961&ie=utf-8";    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_NOBODY, true);    curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $str) use(&$location) {      // 第一個參數是curl資源,第二個參數是每一行獨立的header!        list ($name, $value) = array_map('trim', explode(':', $str, 2));        $name = strtolower($name);        if('location'==$name)        {          $location = $value;          return 0;        }        return strlen($str);    });    curl_exec($ch);    curl_close($ch);    echo $location;?>

    抓取302跳轉還有另外一種方式,利用ob重定向流的方式,并且設置允許curl跳轉到新地址。代碼如下

    <?php      function getContents($url){       $header = array("Referer: http://www.baidu.com/");       $ch = curl_init();       curl_setopt($ch, CURLOPT_URL, $url);       curl_setopt($ch, CURLOPT_TIMEOUT, 30);       curl_setopt($ch, CURLOPT_HTTPHEADER,$header);       curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);  //能無法 抓取跳轉后的頁面      ob_start();       curl_exec($ch);       $contents = ob_get_contents();       ob_end_clean();       curl_close($ch);       return $contents;       }       $url = "https://www.baidu.com/link?url=b34APzBjz-cGLoxsG4-nviHmtVS0tCvEftS6ApCAsojT1a0h9oFFPprwK4JpNYgGaQE29QPUtRdPUeu3lIz2M7GW7dqLMi5ytlHLOVa3v_VY23dOoRiUSyV9zr_cI8Rg&amp;wd=&amp;eqid=c89cf372000002cc0000000255705961&amp;ie=utf-8";      $contents = getContents($url);      echo $contents; ?>
    PHP編程

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

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
    国产精品视频福利一区二区| 九九在线免费视频| 天天插天天狠天天透| 国产香蕉视频在线看| 高潮毛片在线观看| 国产无遮挡又黄又爽免费软件 | xxxxx中文字幕| 国产福利免费观看| 午夜视频在线观看网站午夜视频在线| 一本大道久久精品| 国产69久久| 尤物在线视频| 99爱视频在线观看| 奇米影视狠狠狠| 国产尤物一区二区三区| 国产日产一区二区三区| 午夜小视频在线| 91福利在线免费| 日本在线天堂| 国产欧美黑人| 国产男女无套在线播放| 天堂资源最新在线| 国产高清一级片| 免费午夜一级| 91极品在线| 精品国产高清自在线一区二区三区 | 国产经典三级在线| 欧美日韩一区二区三区在线播放 | 黄色片av在线| 69久久久久| 九九热在线免费视频| 精品无吗乱吗av国产爱色| 国产免费永久在线观看| 日本成人a视频| 亚洲va国产日韩欧美精品色婷婷| 国产精品麻豆一区二区三区| 毛片网站在线观看| 国产小黄视频| 久热免费在线视频| 亚洲综合天堂网| 中文av在线播放| 国产精品bbw一区二区三区| 国产美女福利在线观看| 麻豆av在线| 欧美亚洲另类在线观看| 日本精品一区二区三区在线播放| 一级二级三级在线观看| av亚洲男人天堂| 日韩精品免费一区二区| 青青草视频在线观看| 看成年女人免费午夜视频| 久久国产精品黑丝| 九色视频网站| 最近中文字幕mv免费高清在线| 九九热在线视频观看| 国产麻豆麻豆| 国产一级片在线播放| 精品女厕厕露p撒尿| 精品国内一区二区三区免费视频| 国产青青草在线| 2019中文字幕在线电影免费| 国产二区三区四区| 午夜在线不卡| 丁香花在线电影小说观看 | 超碰免费在线| 国产一卡二卡3卡4卡四卡在线| 国产精品yjizz视频网一二区| 伊人精品影院| 免费国产视频| 精精国产xxxx视频在线| 青青草视频免费在线观看| 99热在线观看免费| 在线观看av网站永久| 亚洲精品视频区| 国产精品亚洲第五区在线| 91嫩草在线播放| 免费看黄视频网站| 伊人春色在线| 国产色视频网站| 国产中文字幕在线播放| 999在线视频| 中文字幕网站视频在线| 四虎国产精品永久| 97国产视频| 中文字幕成人乱码在线电影| 欧美日韩久久中文字幕| 99精品老司机免费视频| 国产高清在线视频| 99色在线视频| 国产中文字幕在线视频| 日本卡一卡2卡3卡4精品卡网站| 国产福利在线看| 国产极品美女到高潮| 1区2区3区在线| 中文字幕日本在线| 1区不卡电影| 最新国产在线精品91尤物| 青青草视频在线观看| 午夜在线网站| 欧美日韩亚洲国内综合网 | av网址在线看| 精精国产xxxx视频在线中文版| 九九热在线视频免费观看| www.三区| 牛牛热在线视频| 久热国产视频| 天天操天天艹| 国产精品69一区二区三区| 国产深夜福利| 999国产在线视频| 日本aⅴ写真网站免费| 久久久久久久久久久久网站 | 成人av小说网| 国产青草视频在线观看视频| 国产一二三区精品视频| 最新国产在线精品91尤物| 国产精品久久久久久久牛牛 | 天天插天天干| 欧美人成在线观看网站高清| 超碰在线中文| 国产网红在线观看| 中文视频在线| 欧美xxxxx性| 中文字幕在线看精品乱码| 国产黄色在线免费观看| 97视频网站| 九九精品视频在线观看九九| 国产卡二和卡三的视频| 国产成人亚洲综合小说区| 四虎成人欧美精品在永久在线| 国内精品免费一区二区三区| 国产高清av| 久草在线视频网| av男人的天堂网| 中文字幕在线播放网址| gogogogo高清视频在线| 国产天堂在线| 九九热在线播放| 亚洲久草视频| 精品176二区| 91超碰免费在线| 日本成人网址| 精品国产高清自在线一区二区三区 | 开心激情五月婷婷| 精品a在线观看| 国产深夜福利| 国产麻豆精品高清在线播放| 精品国产高清自在线一区二区三区| 麻豆网站在线免费观看| 在线午夜影院| 91青青在线视频| 国产不卡视频| 国产福利在线看| 综合激情亚洲| 国产图片综合| 国产写真视频在线观看| 五月伊人六月| 国产视频二区三区| 国产一级黄色| 国产对白叫床清晰在线播放| 国产精品午夜久久久久久| 久艹在线视频| 国产美女av在线| √天堂8资源中文在线| 国产一级在线| 2021av在线| gogo在线观看| 国产蜜臀在线| 国产九色porn网址| 国产视频三级在线观看播放| 国产私人尤物无码不卡| 国产高清免费在线播放| 国产高清视频在线| gogogogo高清视频在线| 久热精品视频在线播放| 午夜视频在线观看网站午夜视频在线| 国产精选在线观看| 国产xxxx做受性欧美88| 天天插天天色| 国产青青视频| 日本高清不卡中文字幕| 国产在线观看网站| 国产精品福利视频一区二区三区| 国产香蕉在线| 一二三四区在线观看| 久久精品国产麻豆| 国产馆av播放| 九九热在线观看视频| 国产精品冒白浆免费视频| 四虎成年永久免费网站| 国产美女高潮| av亚洲在线| 免费观看一二区视频网站| 国产日韩网站| 豆国产97在线|亚洲| www.九九热.com| 狠狠操狠狠色| 伊人222成人综合网| 一本大道香蕉8中文在线视频| 免费a级毛片在线观看|