<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            php語言

            PHP如何使用curl實現數據抓取

            時間:2025-02-05 03:27:12 php語言 我要投稿
            • 相關推薦

            PHP如何使用curl實現數據抓取

              導語:PHP如何使用curl實現數據抓取呢?下面是小編給大家提供的實現代碼,大家可以參考閱讀,更多詳情請關注應屆畢業生考試網。

              <?php

              define ( 'IS_PROXY', true ); //是否啟用代理

              function async_get_url($url_array, $wait_usec = 0)

              {

              if (!is_array($url_array))

              return false;

              $wait_usec = intval($wait_usec);

              $data  = array();

              $handle = array();

              $running = 0;

              $mh = curl_multi_init(); // 開啟多線程

              $i = 0;

              foreach($url_array as $url) {

              $ch = curl_init();

              if (IS_PROXY) {

              //以下代碼設置代理服務器

              //代理服務器地址http://www.cnproxy.com/proxy1.html !!Hong Kong, China的速度比較好

              curl_setopt ($ch, CURLOPT_PROXY,'110.4.12.170:80' );

              }

              curl_setopt($ch, CURLOPT_URL, $url);

              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return don't print

              curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置超時時間

              curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');

              curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 302 redirect

              curl_setopt($ch, CURLOPT_MAXREDIRS, 7); //HTTp定向級別

              curl_multi_add_handle($mh, $ch); // 把 curl resource 放進 multi curl handler 里

              $handle[$i++] = $ch;

              }

              /* 執行 */

              do {

              $mrc = curl_multi_exec($mh, $running);

              if ($wait_usec > 0) /* 每個 connect 要間隔多久 */

              usleep($wait_usec); // 250000 = 0.25 sec

              } while ($mrc == CURLM_CALL_MULTI_PERFORM);

              while ($running && $mrc == CURLM_OK) {

              if (curl_multi_select($mh) != -1) {

              do {

              $mrc = curl_multi_exec($mh, $running);

              } while ($mrc == CURLM_CALL_MULTI_PERFORM);

              }

              }

              /* 讀取資料 */

              foreach($handle as $i => $ch) {

              $content = curl_multi_getcontent($ch);

              $data[$i] = (curl_errno($ch) == 0) ? $content : false;

              }

              /* 移除 handle*/

              foreach($handle as $ch) {

              curl_multi_remove_handle($mh, $ch);

              }

              curl_multi_close($mh);

              return $data;

              }

              $urls = array('http://map.baidu.com');

              $re = async_get_url($urls);

              echo $re[0];

              ?>

            【PHP如何使用curl實現數據抓取】相關文章:

            PHP中使用cURL實現Get和Post請求11-13

            PHP實現抓取HTTPS內容09-17

            php使用curl發送json格式數據實例07-08

            PHP中使用cURL實現Get和Post請求的方法10-30

            PHP如何使用curl發送GET和POST請求09-10

            php的curl實現get和post的代碼07-07

            PHP中使用curl入門教程11-14

            php使用curl訪問https示例分享09-15

            php中的curl使用入門教程06-20

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看