加入收藏 | 设为首页 | 会员中心 | 我要投稿 濮阳站长网 (https://www.0393zz.cn/)- 专属主机、数据湖、操作系统、媒体智能、数据分析!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php里常用的远程采集函数

发布时间:2022-06-17 08:45:52 所属栏目:PHP教程 来源:互联网
导读:在php中采集数据最常用的就是使用curl函数来操作,因为curl函数是高性能并且多线程功能,下面我来介绍一个php采集程序,各位同学有需要可进入参考. php里常用的远程采集函数,代码如下: /** * 获取远程url的内容 * @param string $url * @return string */ funct
  在php中采集数据最常用的就是使用curl函数来操作,因为curl函数是高性能并且多线程功能,下面我来介绍一个php采集程序,各位同学有需要可进入参考.
 
  php里常用的远程采集函数,代码如下:
 
  /**  
   * 获取远程url的内容  
   * @param string $url  
   * @return string  
   */
  function get_url_content($url) {  
    if(function_exists(curl_init)) {  
      $ch = curl_init();  
      $timeout = 5;  
      curl_setopt ($ch, CURLOPT_URL, $url);  
      curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
      curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
      curl_setopt ($ch, CURLOPT_TIMEOUT, $timeout);  
      //开源代码phpfensi.com
      $file_contents = curl_exec($ch);  
      curl_close($ch);  
    } else {  
      $file_contents = file_get_contents($url);  
    }  
     
    return $file_contents;  
  }
  调用方法,代码如下:
 
  $url = 'http://www.phpfensi.com';  
  $a = get_url_content($url);  
  echo $a;
  上面只是一个简单的实例,如果我们想应用可参考我自己写的采集程序了.
 
  1,获取目标网页数据;2,截取相关内容;3,写入数据库/生成HMTL文件;
 
  下面就按照步骤来试试!
 
  获取目标网页数据
 
  1, 确定好,要获取的网页地址甚至形式,这里我们采用的网址是:/index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=1&tr=59,这个页面是有分页的,根据规律,我们找到只需要改变page参数就可以翻页!即:我们的网页形式是:/index.html?pageconfig=catalog_byproducttype& amp;intProductTypeID=1&strStartChar=A&intResultsPage= NUMBER &tr=59
 
  红色部分是当前页码对应值!只需要改变该值就可以了!
 
  2,获取页面内容:自然要用到PHP函数了!这里,两个函数都可以!他们分别是:
 
  file_get_contents() 把整个文件读入一个字符串中。和 file() 一样,不同的是file_get_contents() 把文件读入一个字符串。file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。语法: file_get_contents( path , include_path , context , start , max_length ) curl() 了解详细,请参阅官网文档:http://cn.php.net/curl fopen()函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。语法: fopen(filename,mode,include_path,context)当然,我们采用的是第一个!其实,所有的都差不多,有兴趣的童子可以常识常识其他的!代码如下:
 
  <?php
  $oldcontent = file_get_contents(“http://www.abcam.cn/index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59”);
  echo $oldcontent;
  ?>
  运行PHP程序,上面的代码可以显示出整个网页!由于原网页采用的是绝地路径,所以现在显示的效果和原来的是一模一样的!
 
  接下来就是要,截取内容了!截取内容的方法也有很多,今天介绍的一种比较简单,代码如下:
 
  <?php
  $oldcontent = file_get_contents(“http://www.abcam.cn/index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59″);
  $oldcontent;
  $pfirst = ‘<table border=”0″ cellspacing=”0″ cellpadding=”0″> <tr> <th style=”padding-left: 0px;”><p style=”font-size:12px”><strong>Code</strong></p></th>’;
  $plast = ‘Goat polyclonal’;
  $b= strpos($oldcontent,$pfirst);
  $c= strpos($oldcontent,$plast);
  echo substr($oldcontent,$b,$c-1);
  ?>
  输出的,即为所需要的结果,写入数据库和写入文件都是比较简单的,这里就写入文件了,代码如下:
 
  <?php
  $oldcontent = file_get_contents(“index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59″);
  $oldcontent;
  $pfirst = ‘<table border=”0″ cellspacing=”0″ cellpadding=”0″> <tr> <th style=”padding-left: 0px;”><p style=”font-size:12px”><strong>Code</strong></p></th>’;
  $plast = ‘Goat polyclonal’;
  $b= strpos($oldcontent,$pfirst);
  $c= strpos($oldcontent,$plast);
  $a = substr($oldcontent,$b,$c-1);
  $file = date(‘YmdHis’).”.html”;
  $fp = fopen($file,”w+”);
  if(!is_writable($file)){
  die(“File “.$file.” can not be written”);
  }
  else {
  file_put_contents($file, $a);
  echo “success”;
  }
  fclose($fp);
  ?>
 

(编辑:濮阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读