<?php
//调用方法:http://localhost/2.php?id=1(自动采集1-8的列表)
header("Content-type:text/html;charset=utf-8");

$con=mysql_connect("localhost","root","huweishen.com")ordie("数据库链接错误");
mysql_select_db("liuyan",$con);
mysql_query("setnames'utf8'");

functionpreg_substr($start,$end,$str)//正则截取函数
{
$temp=preg_split($start,$str);
$content=preg_split($end,$temp[1]);
return$content[0];
}
functionstr_substr($start,$end,$str)//字符串截取函数
{
$temp=explode($start,$str,2);
$content=explode($end,$temp[1],2);
return$content[0];
}
//----------------使用实例----------------

if($_GET['id']<=8&&$_GET['id']){

$id=$_GET['id'];
$url="http://www.037c.com/New/list_5_$id.html";//目标站
$fp=fopen($url,"r")ordie("超时");
$fcontents=file_get_contents($url);
$pattern="/<\\/span><ahref=\\"(.*)\\"title=\\"(.*)\\"target=\\"_blank\\">/iUs";//正则
preg_match_all($pattern,$fcontents,$arr);
//print_r($arr);
foreach($arr[1]as$k=>$url)
{
	$title=iconv('GB2312','UTF-8',addslashes($arr[2][$k]));
		//echo$title;
		//echo$url;
	$str=iconv("GB2312","UTF-8",file_get_contents($url));
$author=preg_substr("/作者:/","/<\\//",$str);//通过正则提取作者
$content=str_substr('<divclass="wltg">','</div>',$str);//通过字符串提取标题
		$sql="INSERTINTO`caiji`(`title`,`url`,`content`,`author`)VALUES('$title','$url','$content','$author')";

		//echo$sql."<br/>";
mysql_query($sql);
}

$id++;
echo"正在采集URL数据列表$id...请稍后...";
echo"<script>window.location='2.php?id=$id'</script>";
}

else{
echo"采集数据结束。";
}
?>

利用php实现做一个采集小程序插图

其中 title 设置唯一,可以防止重复采集,很好的的一个php采集小程序

发表回复

您的电子邮箱地址不会被公开。