<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 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

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人