php 远程函数,php里常用的远程采集函数

在php中采集数据最常用的就是使用curl函数来操作,因为curl函数是高性能并且多线程功能,下面我来介绍一个php采集程序,各位同学有需要可进入参考.

php里常用的远程采集函数,代码如下:

/**

* 获取远程url的内容

* @param string $url

* @return string

*/

functionget_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);

//开源代码vcphp.com

$file_contents= curl_exec($ch);

curl_close($ch);

} else{

$file_contents=file_get_contents($url);

}

return$file_contents;

}

调用方法,代码如下:

$url='http://www.vcphp.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)当然,我们采用的是第一个!其实,所有的都差不多,有兴趣的童子可以常识常识其他的!代码如下:

$oldcontent=file_get_contents(“http://www.abcam.cn/index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59”);

echo$oldcontent;

?>

运行PHP程序,上面的代码可以显示出整个网页!由于原网页采用的是绝地路径,所以现在显示的效果和原来的是一模一样的!

接下来就是要,截取内容了!截取内容的方法也有很多,今天介绍的一种比较简单,代码如下:

$oldcontent=file_get_contents(“http://www.abcam.cn/index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59″);

$oldcontent;

$pfirst= ‘

Code

$plast= ‘Goat polyclonal’;

$b=strpos($oldcontent,$pfirst);

$c=strpos($oldcontent,$plast);

echosubstr($oldcontent,$b,$c-1);

?>

输出的,即为所需要的结果,写入数据库和写入文件都是比较简单的,这里就写入文件了,代码如下:

$oldcontent=file_get_contents(“index.html?pageconfig=catalog_byproducttype&intProductTypeID=1&strStartChar=A&intResultsPage=2&tr=59″);

$oldcontent;

$pfirst= ‘

Code

$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);

?>

(责任编辑:最模板)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值