已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: php求助

作者: @Ta

时间: 2017-09-19

点击: 3808


/**

*

*/
/**

*
@param string $url
@return string
*/
function _getUrlContent($url){
$handle = fopen($url, "r");
if($handle){
$content = stream_get_contents($handle,1024*1024);
return $content;
}else{
return false;
}
}
/**

*
@param string $web_content
@return array
*/
function _filterUrl($web_content){
$reg_tag_a = '/<[a|A].*?href=[\'\"]{0,1}([^>\'\"\ ]*).*?>/';
$result = preg_match_all($reg_tag_a,$web_content,$match_result);
if($result){
return $match_result[1];
}
}
/**

*
@param string $base_url
@param array $url_list
@return array
*/
function _reviseUrl($base_url,$url_list){
$url_info = parse_url($base_url);
$base_url = $url_info["scheme"].'://';
if($url_info["user"]&&$url_info["pass"]){
$base_url .= $url_info["user"].":".$url_info["pass"]."@";
}
$base_url .= $url_info["host"];
if($url_info["port"]){
$base_url .= ":".$url_info["port"];
}
$base_url .= $url_info["path"];
print_r($base_url);
if(is_array($url_list)){
foreach ($url_list as $url_item) {
if(preg_match('/^http/',$url_item)){
//已经是完整的url
$result[] = $url_item;
}else {
//不完整的url
$real_url = $base_url.'/'.$url_item;
$result[] = $real_url;
}
}
return $result;
}else {
return;
}
}
/**
* 爬虫
*
@param string $url
@return array
*/
function crawler($url){
$content = _getUrlContent($url);
if($content){
$url_list = _reviseUrl($url,_filterUrl($content));
if($url_list){
return $url_list;
}else {
return ;
}
}else{
return ;
}
}
/**
* 测试用主程序
*
*/
function main(){



$current_url = "http://www.tv189.com";//初始网址url

这里的初始url的采集网址 怎么调用本目录下1.txt里面的网址进行采集






$fp_puts = fopen("url.txt","ab");//记录url列表
$fp_gets = fopen("url.txt","r");//保存url列表
do{
$result_url_arr = crawler($current_url);
if($result_url_arr){
foreach ($result_url_arr as $url) {
fputs($fp_puts,$url."\r\n");
}
}
}while ($current_url = fgets($fp_gets,1024));//
}
main();




[隐藏样式|查看源码]


『回复列表(7|显示机器人聊天)』

1. $current_url=file_get_contents('1.txt');
-rainss.cn-雨落凋殇
(/@Ta/2017-09-19 00:35//)

2. @雨伤

调用一行的网址成功 多加一个网址就完全失败了 
(/@Ta/2017-09-19 00:45//)

3. @论文
$fp_gets = fopen("url.txt","r");
这一行修改为$fp_gets = fopen("1.txt","r");
$current_url=file('1.txt');
fseek($fp_gets,strlen($current_url[0]),0);
$current_url=preg_replace('//s*/', '',$current_url[0]);
(/@Ta/2017-09-19 04:49//)

4. 多个可以用循环和file函数
-rainss.cn-雨落凋殇
(/@Ta/2017-09-19 08:35//)

5. @,还是不行 
(/@Ta/2017-09-19 11:13//)

6. @论文,那就没办法了
(/@Ta/2017-09-19 11:28//)

7. @论文,把你的main函数改一下~main($current_url){你的内容}然后你的$current_url = 这一行可以删除了。后面的main()改成 
$file=file('1.txt'); 
$i=0;
while($i<count($file)){
 main($file[$i++]); 
}

-rainss.cn-雨落凋殇
(/@Ta/2017-09-19 14:46//)

回复需要登录

8月22日 01:04 星期五

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1