php blank,Blankspider PHP 爬虫

该博客介绍了如何使用PHP编写函数进行网络爬虫操作,抓取指定URL的内容,并将结果保存到指定目录的文件中。同时,它展示了一个名为`cron2spider`的函数,用于读取`iptable.conf`文件中的URL列表,周期性地运行爬虫并将结果按时间戳记录到不同的文件中。整个过程涉及文件操作、HTTP请求和定时任务的实现。
摘要由CSDN通过智能技术生成

目录:

robots.php

iptable.conf

./robots

iptable.conf

<

http://www.baidu.com

http://www.sogou.com

http://www.iapall.com

http://www.oschina.net

--------- 内容 -------->>

1.[代码][PHP]代码

function spider($url, $spider = 'Blankspider', $port = 80, $timeout = 15) {

$content= '';

$resolve = parse_url($url);

$host = $resolve['host'];

$path = empty($resolve['path']) ? '/' : $resolve['path'].(!empty($resolve['query']) ? '?'.$resolve['query'] : '');

if(empty($host)) { return 'Requested host name can\'t be empty'; }

$fp = fsockopen($host, $port, $errno, $errstr, $timeout);

if (!$fp) {

return $errstr;

} else {

$fputs = "GET $path HTTP/1.1\r\n";

$fputs.= "Accept: */*\r\n";

$fputs.= "Host: $host\r\n";

$fputs.= "Spider: $spider\r\n";

$fputs.= "Connection: Close\r\n\r\n";

stream_set_blocking($fp, 1);

stream_set_timeout($fp, $timeout);

fputs($fp, $fputs);

while(!feof($fp)) {

if(($return = fgets($fp)) && ($return == "\r\n" || $return == "\n")) {

break;

}

}

while(!feof($fp)) { $content .= fgets($fp, 8192); }

fclose($fp);

return $content;

}

}

function cron2spider($iptable, $sleep = 5) {

set_time_limit(0);

$i = 0;

date_default_timezone_set('PRC');

if(!file_exists($iptable)) {

return json_encode(array(

'status'=> 'error',

'description'=> 'iptable.conf file not exists'));

}

$file = file($iptable);

if(empty($file)) {

return json_encode(array(

'status'=> 'error',

'description'=> 'iptable.conf can\'t be empty'));

}

while($i< count($file)) {

if(!file_exists('robots') || !is_writable('robots')) {

return json_encode(array(

'status'=> 'error',

'description'=> 'directory doesn\'t exist or don\'t have write permissions'));

}

$dir = 'robots/'.preg_replace('/(http\:\/\/)|(\s)|(www\.)/', '', $file[$i]);

if(!file_exists($dir)){ mkdir($dir); }

file_put_contents($dir.'/'.date('Y.m.d.H.i.s', time()).'.txt', spider(preg_replace('/\s/', '', $file[$i])));

$i++;

sleep($sleep);

}

return json_encode(array(

'status'=> 'ok',

'description'=> 'robots program execution success'));

}

echo cron2spider('iptable.conf');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值