如何通过PHP进行网站数据采集?

寻技术 PHP编程 2023年07月12日 89

随着信息时代的到来,现在大部分人获取的信息都来自互联网,如果对自己有用的数据使用传统的复制粘贴,效率会极其低下。如何才能快速的完成批量采集工作呢?下面我们就聊一聊关于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>

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

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

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

关闭

用微信“扫一扫”