当前位置:AIGC资讯 > 数据采集 > 正文

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>&nbsp;&nbsp;(.*)</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>

这个是我读取我们学校新闻网的一个采集程序,其中原理很简单,如果需要存入数据库~~~那个就简单了,只用在显示的地方写存入数据库代码即可~

要点:空格和标点都不能少!如果没有采集到那么请检查你的匹配规则

附:采集很简单,要理解它的原理就可以了~~以后再批量发布信息就不怕了~

更新时间 2023-11-08