vnsc威尼斯城官方网站:php使用curl轻便抓取远程url的点子

 代码如下

很早之前我们用
正则表达式来匹配网页中的html标签和属性,来抓取数据,现在看来确实有点过时和麻烦了。
现在有了 php DomDocument 对象来处理这些事情了

本文实例讲述了php使用curl通过代理获取数据的实现方法。分享给大家供大家参考,具体如下:

本文实例讲述了php使用curl抓取远程url的方法。分享给大家供大家参考。具体如下:

vnsc威尼斯城官方网站,<?php

<?php
$target_url =
“http://www.crazyant.net”;
$ch = curl_init();

$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com/");
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0');
curl_setopt($curl, CURLOPT_REFERER, 'http://www.guahao.com/');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($curl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($curl, CURLOPT_PROXY, "180.186.11.121");
curl_setopt($curl, CURLOPT_PROXYPORT, "37211");
curl_setopt($curl, CURLOPT_PROXYUSERPWD, "taras:taras-ss5");
$result=curl_exec($curl);

cURL是一个非常有用的php库,可以用来连接不通类型的服务器和协议,下面是一个最基本的范例用来抓取远程网页

define (‘IS_PROXY’, true );//是否启用代理

curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$html = curl_exec($ch);

PS:小编在这里推荐一款本站的php格式化美化的排版工具帮助大家在以后的PHP程序设计中进行代码排版:  
php代码在线格式化美化工具:

<?php
$c = curl_init('http://www.w3mentor.com/robots.txt');
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($c);
curl_close($c);
?>

functionasync_get_url($url_array,$wait_usec= 0)

if (!$html) {
echo “<br />cURL error number:” .curl_errno($ch);
echo “<br />cURL error:” . curl_error($ch);
exit;
}
//创建一个DomDocument对象,用于处理一个HTML
$dom = new DOMDocument();
//从一个字符串加载HTML
@$dom->loadHTML($html);
//使该HTML规范化
$dom->normalize();

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php
curl用法总结》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家的php程序设计有所帮助。

{

//用DOMXpath加载DOM,用于查询
$xpath = new DOMXPath($dom);

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • php
    curl请求接口并获取数据的示例代码
  • PHP CURL获取返回值的方法
  • PHP通过curl获取接口URL的数据方法

  if(!is_array($url_array))

获取所有的a标签的地址

$hrefs = $xpath->evaluate(“/html/body//a”);

for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$linktext = $href->nodeValue;
$linkUrl = $href->getAttribute(“href”);
echo $linktext;
echo “<BR>”;

}
?>

您可能感兴趣的文章:

  • php采集中国代理服务器网的方法
  • PHP反向代理类代码
  • php在线代理转向代码
  • php设计模式 Proxy
    (代理模式)
  • php中通过虚代理实现延迟加载的实现代码
  • PHP
    反射机制实现动态代理的代码
  • php使用curl并发减少后端访问时间的方法分析
  • PHP使用curl模拟post上传及接收文件的方法
  • PHP
    Curl模拟登录微信公众平台、新浪微博实例代码
  • php
    curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法

    returnfalse;

  $wait_usec=intval($wait_usec);

  $data =array();

  $handle=array();

  $running= 0;

  $mh= curl_multi_init();// 开启多线程

  $i= 0;

  foreach($url_arrayas$url) {

    $ch= curl_init();

    if(IS_PROXY) {

    //以下代码设置代理服务器

    //代理服务器地址 !!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($handleas$i=>$ch) {

    $content= curl_multi_getcontent($ch);

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

  }

  /* 移除 handle*/

  foreach($handleas$ch) {

    curl_multi_remove_handle($mh,$ch);

  }

  curl_multi_close($mh);

  return$data;

}

$urls=array(”);

$re= async_get_url($urls);

echo$re[0];

?>

相关文章