简单采集程序
时间:2006-11-13 来源:鱼儿游
首先感谢帮助过写这个程序的网友.特别是阿文.之所以把我这个简单的采集程序贴出来,是因为我当初要写采集程序的时候在网上找了好多资料,但是个人觉得都比较复杂,因此希望我这个简单的采集程序能给刚开始接触采集程序的朋友一点帮助.
注:函数file_get_contents("要打开的文件")
如果
“fopen wrappers”
已经被激活,则您在使用该函数的时候,可以把 URL 作为文件名来使用
激活方法:配置文件fopen wrappers这段的allow_url_fopen = off.改成on
* 采集站点
http://www.jokeboat.com
*/
if($Submit!='')//点采集之后执行下列程序片段
{
require('db.php');//数据库文件
set_time_limit (0);
$html = file_get_contents("
http://www.jokeboat.com/
");
if($html==FALSE)
echo '打开文件
http://www.jokeboat.com/
失败!';
else{
$html=preg_match("/Blog Categories(.*?)Monthly Archives/si",$html,$html2);
$html_= $html2[1] ;
//foreach($html2[1] as $html_){//用preg_match 时foreach出错。
//整个分类这一块
if(preg_match_all('/(.*?)/i', $html_, $kind)){//先不循环
foreach($kind[2] as $name){//分类名称入库
/*
$sql="select id from $db2 where name='$name'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
if($num==0){
$query="insert into $db2 values ('','$name')";
mysql_query($query) OR die('系统错误。分类名称录入失败!');
echo '插入'.$name;
}
else '已经存在';
*/}
foreach($kind[1] as $key =>$url){//$key作分类id号
// print_r($kind[1]);//取得分类的url
// print_r($kind[2]);//取得分类的名称
$type_id=$key+1;//入库分类ID号
//echo ''.$type_id.'';
/*调式时,选择第3页采集
* $i=3;
* while($i(.*?)/i",$open_url,$title);
if ($r_t==0) echo "没有找到某些分类的文章";//有4个分类没有内容,给予提示
else{
//print_r($title);//文章标题
foreach($title[2] as $k=> $title_n)
{
$list[$k]=$title_n;
}
}
// /*//------------------------取的文章内容------------------------------
$r_c=preg_match_all("/(.*?)/si",$open_url,$content);
if ($r_c==0) echo "没有找到内容信息";//有4个分类没有文章
else{
//print_r($content[1]);//文章内容
// echo count($content[1]);
foreach($content[1] as $k =>$text)
{
$list0[$k]=$text;
}
}
//*/ -------------------------------通过数组入库-----------------------------------------------------
for($k=0;$k
{//echo $list0[$k].'
';
$nr = addslashes($list0[$k]);
// /*
$sql="select id from $db1 where title='$list[$k]'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
if($num==0){
$date=date("Y-m-d H:i:s");
$query="insert into $db1 values('','$type_id','$list[$k]','$nr','$date')";
mysql_query($query) OR die('系统错误,标题录入失败!');
}
else '已经存在';
// */
}
//--------------------------//匹配是否为尾页------------------------------------------------
$p=preg_match("//i",$open_url,$pages);
if($p==1) echo '不是尾页';
else {
echo "没有了";
//break;调式时只选择某一页,那么不需要跳出
break;
}
}
$i++; }
}
}
}
}
else {//没有点采集显示文本
?>
无标题文档
注:函数file_get_contents("要打开的文件")
如果
“fopen wrappers”
已经被激活,则您在使用该函数的时候,可以把 URL 作为文件名来使用
激活方法:配置文件fopen wrappers这段的allow_url_fopen = off.改成on
* 采集站点
http://www.jokeboat.com
*/
if($Submit!='')//点采集之后执行下列程序片段
{
require('db.php');//数据库文件
set_time_limit (0);
$html = file_get_contents("
http://www.jokeboat.com/
");
if($html==FALSE)
echo '打开文件
http://www.jokeboat.com/
失败!';
else{
$html=preg_match("/Blog Categories(.*?)Monthly Archives/si",$html,$html2);
$html_= $html2[1] ;
//foreach($html2[1] as $html_){//用preg_match 时foreach出错。
//整个分类这一块
if(preg_match_all('/(.*?)/i', $html_, $kind)){//先不循环
foreach($kind[2] as $name){//分类名称入库
/*
$sql="select id from $db2 where name='$name'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
if($num==0){
$query="insert into $db2 values ('','$name')";
mysql_query($query) OR die('系统错误。分类名称录入失败!');
echo '插入'.$name;
}
else '已经存在';
*/}
foreach($kind[1] as $key =>$url){//$key作分类id号
// print_r($kind[1]);//取得分类的url
// print_r($kind[2]);//取得分类的名称
$type_id=$key+1;//入库分类ID号
//echo ''.$type_id.'';
/*调式时,选择第3页采集
* $i=3;
* while($i(.*?)/i",$open_url,$title);
if ($r_t==0) echo "没有找到某些分类的文章";//有4个分类没有内容,给予提示
else{
//print_r($title);//文章标题
foreach($title[2] as $k=> $title_n)
{
$list[$k]=$title_n;
}
}
// /*//------------------------取的文章内容------------------------------
$r_c=preg_match_all("/(.*?)/si",$open_url,$content);
if ($r_c==0) echo "没有找到内容信息";//有4个分类没有文章
else{
//print_r($content[1]);//文章内容
// echo count($content[1]);
foreach($content[1] as $k =>$text)
{
$list0[$k]=$text;
}
}
//*/ -------------------------------通过数组入库-----------------------------------------------------
for($k=0;$k
{//echo $list0[$k].'
';
$nr = addslashes($list0[$k]);
// /*
$sql="select id from $db1 where title='$list[$k]'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
if($num==0){
$date=date("Y-m-d H:i:s");
$query="insert into $db1 values('','$type_id','$list[$k]','$nr','$date')";
mysql_query($query) OR die('系统错误,标题录入失败!');
}
else '已经存在';
// */
}
//--------------------------//匹配是否为尾页------------------------------------------------
$p=preg_match("//i",$open_url,$pages);
if($p==1) echo '不是尾页';
else {
echo "没有了";
//break;调式时只选择某一页,那么不需要跳出
break;
}
}
$i++; }
}
}
}
}
else {//没有点采集显示文本
?>
无标题文档
相关阅读 更多 +
排行榜 更多 +