服务热线 400-660-5555

长沙网站建设
首页 站内资讯

长沙网站建设

站内资讯
长沙网站建设 / 站内资讯 / 产品资讯 / 正文

用一个示例简单讲一下网站采集的的过程

来源: All文章
发布时间:2023-04-19 17:00:07

  随着时代的发展,社会越来越信息快速化,所以信息更新非常的迅速,这让很多站长在更新自家的网站信息时,显得太浪费时间,该怎么办呢?那就是通过采集将别家的信息录入到自家网站的数据库中,这样做可能对网站的优化会有一定的影响,但这不是我们今天讨论的话题,今天就用一个示例简单讲一下网站采集的的过程

  我们先来看下面的一个实例,这是客户的网站要求采集太平洋网站的新闻,代码如下图所示(附说明):

  ?ph

  header(content-type:text/html;charset=utf-8);//

  $ch=curl_init();

  curl_setopt($ch,CURLOPT_URL,$url);//将为一个CURL会话设置选项。CURLOPT_URL参数是你想要的设置,这是你想用PHP取回的URL地址,$url是这个选项给定的值

  curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);//如果有证书的https的,除去https里面的s,此句非常重要,不可删除,否则带有https的站点将无法打开

  curl_setopt($ch,CURLOPT_RETURANSFER,1);//所获的内容不输出

  $data=curl_exec($ch);//将页面的内容赋于$data,即$data就是我们打开网页后的内容代码

  $data=iconv('gbk','utf-8',$data);//防止中文的乱码,做处理

  curl_close($ch);//关闭cURL会话

  咱们先打开太平洋新闻网,然后查看网页源代码,找到要采集的信息内容,截图下图:

  根据上面的代码,我们可以写一个正则表达:

  $path='#iclass=lpicahref=(.*?)target=_blankimgwidth=200height=150src=//www

  1.pconline.com.cn/images/blank.gif(.*?)=(.*?)alt=/a

  /i

  dldtahref=(.*?)target=_blank(.*?)/a/dtddspan class=des(.*?)/spanpclass=infospan class=channelahref=(.*?)target=_blank(.*?)/a/spanspan class=date|(.*?)/span/p/dd/dl#is';preg_match_all($path,$data,$arr);//正则匹配,其中$path是匹配的规则,$data是想要匹配的内容,$datapath给定正则表达式的匹配结果并且将它们以flag指定顺序输出到$arr中.

  $array=array();//初始化一个数组

  foreach($arras$k=$v){

  if($k==3||$k==4||$k==5||$k==6||$k==9){//想要的参数有哪些

  $array[$k]=$v;}}

  if(!empty($array)){

  $array=array_values($array);//重置数组key,让数组的key从0开始计算,也可以不重置,但不要弄错

  }

  /*

  其中

  $array[0]是信息的图片绝对地址的数组

  $array[1]是信息链接地址的数组

  $array[2]是信息标题的数组

  $array[3]是信息列表简介的数组

  $array[4]是信息时间的数组

  Print_r($array);根据输入的数组信息就知道如何把数据添加到数据库了,然后根据url再采集信息里面的详细内容,以达到采集整条信息的完整性

  */

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-5555

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr