php里常用的远程采集函数
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-27 15:05:50 浏览: 评论:0
在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);
- ?>
Tags: php函数 php远程采集函数
相关文章
- ·什么函数能够把文件从一个目录下转移到另外一个目录下?(2013-11-27)
- ·计算一个程序的执行时间的函数(2013-11-27)
- ·强大的php检查文件类型(2013-11-30)
- ·强php编码转换函数(2013-11-30)
- ·PHP函数学习之PHP函数点评(2014-01-14)
- ·php函数ob_start()、ob_end_clean()、ob_get_contents()(2014-03-22)
- ·关于php函数isset和empty的一些误解(2014-06-11)
- ·php中使用is_numberic函数注意事项(2014-08-21)
- ·PHP利用str_replace()函数防注入(2014-08-22)
- ·PHP中自带函数过滤sql注入代码分析(2014-08-23)
- ·php中json_encode函数对中文的处理例子(2014-08-27)
- ·用php写 ftp文件上传函数教程(2014-09-09)
- ·php mysql_real_escape_string()函数(2014-09-11)
- ·php odbc_connect()函数说明与实例代码(2014-09-11)
- ·PHP Header函数跳转时需要注意的一些问题(2014-09-12)
- ·PHP函数之:sprintf()学习笔记(2014-09-12)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)