随着信息时代的到来,现在大部分人获取的信息都来自互联网,如果对自己有用的数据使用传统的复制粘贴,效率会极其低下。如何才能快速的完成批量采集工作呢?下面我们就聊一聊关于PHP采集的一些事!
采集就是使用file_get_contents函数和正则的使用。
先贴上一段代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<?php
$file=file_get_contents("http://nitnews.nyist.net/list_59.html");
$preg1="#<LI><A title=(.*) href=\"(.*)\" target=_blank>(.*)</A><SPAN> (.*)</SPAN> </LI>#iUs";
preg_match_all($preg1,$file,$arr);
//print_r($arr);exit();
foreach($arr[1] as $id=>$val)
{
//echo "<a href=\"http://nitnews.nyist.net/".$arr[2][$id]."\">".$val."</a><br />";
echo "<a href=\"content.php?url="."http://nitnews.nyist.net/".$arr[2][$id]."\">".$val."</a><br />";
}
?>
</body>
</html>
[/php]
[php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<?php
function GetInfo($preg,$con,$num=1)
{
preg_match($preg,$con,$arr);
$arr[$num]=str_replace("src=\"/upFile/","src=\"http://nitnews.nyist.net/upFile/",$arr[$num]);
return $arr[$num];
}
$url=$_GET[‘url’];
$content=file_get_contents($url);
$pr="@<H1>(.*)</H1>@iUs";
echo "文章标题是:".GetInfo($pr,$content);
$con="#<!–正文内容开始–>(.*)<!–正文内容结束–>#iUs";
echo "文章内容是:".GetInfo($con,$content);
?>
</body>
</html>
这个是我读取我们某学校新闻网的一个采集程序,其中原理很简单,如果需要存入数据库~~~那个就简单了,只用在显示的地方写存入数据库代码即可~
要点:空格和标点都不能少!如果没有采集到那么请检查你的匹配规则。
附:采集很简单,要理解它的原理就可以了~~以后再批量发布信息就不怕了~