<?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"采集数据结束。"; } ?>
其中 title 设置唯一,可以防止重复采集,很好的的一个php采集小程序