问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有没有php开发的文章采集发布器

发布网友 发布时间:2023-07-19 13:04

我来回答

1个回答

热心网友 时间:2024-12-02 16:34

数据的采集,大部分都是用正则表达式来完成的,我简单地介绍下如何实现采集的思路.这里说的是php的实现.一般是本机运行,放到空间上是不明智的,因为不但很耗资源还需要支持远程抓取函数,比如file_get_contents($urls)file($url)等等.
  1,文章列表页面的自动切换,以及文章路径的获得.
  2,获得:标题,内容
  3,入库
  4,问题
  1,文章列表页面的自动切换,以及文章路径的获得.
  a,列表页面的自动切换一般依赖动态页面来实现.比如
  http://www.phpfirst.com/foru ... d=1&page=$i
  可以在后面利用$i的自动增加或范围来实现,比如$i++;
  也可以像penzi演示的那个一样,要从第几页到第几页,代码方面控制$i的范围就可以了.
  b,文章路径的获得分需要填正则和无需填正则2种:
  1)无需填正则就是获得上面的文章列表页面的所有连接
  但是最好对连接进行过滤,处理---判断重复连接,只留一个,处理相对路径,变成绝对路径.比如../ 和./等.
  下面是我写的实现函数:
  PHP:

  //$e=clinchgeturl("http://phpfirst.com/forumdisplay.php?fid=1");
  //var_mp($e);
  function clinchgeturl($url)
  {
  //$url="http://127.0.0.1/1.htm";
  //$rootpath="http://fsrootpathfsfsf/yyyyyy/";
  //var_mp($rrr);
  if(eregi((.)*[.](.)*,$url)){
  $roopath=split("/",$url);
  $rootpath="http://".$roopath[2]."/";
  $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu++){$rootpath.=$roopath[$yu]."/";}
  // var_mp($rootpath); //http: ,,127.0.0.1,xnml,index.php
  }
  else{$rootpath=$url; //var_mp($rootpath);
  }
  if(isset($url)){
  echo "$url 有下列裢接:
";
  $fcontents = file($url);
  while(list(,$line)=each($fcontents)){
  while(eregi((href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-]+[?]?[^"]*"?),$line,$regs)){
  //$regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-]+)("?),"",$regs[1]);
  $regs[1] = eregi_replace((href[[:space:]]*=[[:space:]]*["]?)([[:alnum:]:@/._-]+[?]?[^"]*)(.*)[^"/]*(["]?),"",$regs[1]);
  if(!eregi(^http://,$regs[1])){
  if(eregi(^..,$regs[1])){
  // $roopath=eregi_replace((http://)?([[:alnum:]:@/._-]+)[[:alnum:]+](.*)[[:alnum:]+],"http://",$url);
  $roopath=split("/",$rootpath);
  $rootpath="http://".$roopath[2]."/";
  //echo "这是根本d :"." ";
  $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu++){$rootpath.=$roopath[$yu]."/";}
  //var_mp($rootpath);
  if(eregi(^..[/[:alnum:]],$regs[1])){
  //echo "这是../目录/ :"." ";
  //$regs[1]="../xx/xxxxxx.xx";
  // $rr=split("/",$regs[1]);
  //for($oooi=1;$oooi
  $rrr=$regs[1];
  // {$rrr.="/".$rr[$oooi];
  $rrr = eregi_replace("^[.][.][/]",,$rrr); //}
  $regs[1]=$rootpath.$rrr;
  }
  }else{
  if(eregi(^[[:alnum:]],$regs[1])){ $regs[1]=$rootpath.$regs[1]; }
  else{ $regs[1] = eregi_replace("^[/]",,$regs[1]); $regs[1]=$rootpath.$regs[1]; }
  }
  }
  $line = $regs[2];
  if(eregi((.)*[.](htm|shtm|html|asp|aspx|php|jsp|cgi)(.)*,$regs[1])){
  $out[0][]=$regs[1]; }
  }
  }
  }for ($ouou=0;$ouou
  {
  if($out[0][$ouou]==$out[0][$ouou+1]){
  $sameurlsum=1;
  //echo "sameurlsum=1:";
  for($sameurl=1;$sameurl
  if($out[0][$ouou+$sameurl]==$out[0][$ouou+$sameurl+1]){$sameurlsum++;}
  else{break;}
  }
  for($p=$ouou;$p
  { $out[0][$p]=$out[0][$p+$sameurlsum];}
  }
  }
  $i=0;
  while($out[0][++$i]) {
  //echo $root.$out[0][$i]." ";
  $outed[0][$i]=$out[0][$i];
  }
  unset($out);
  $out=$outed; return $out;
  }
  ?>
  上面的东西只能用zend,不然写出来就不大好看了:(
  得到所有唯一的连接后,放到数组
  2)需要填正则的处理
  如果要准确地获得需要的文章连接,那就用这个办法了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我要问一下掇刀医保局恢复正常上班吗? 医保卡是东宝区的怎么才能转到掇刀区 东宝人社局 医保局 空调扇和风扇有什么区别 ...上了技校,现在上了电大的大专,档案在自己手里怎么办? 高职扩招的档案从哪里来 专科没有毕业档案怎么办 技校没上完考上专科,档案怎么转 凉薯和红薯有什么区别 凉薯和山药一样吗 我是一名教师 评职称发表论文 不知道网上哪些机构好点 具体? 安昌古镇到仓桥直街怎么走 安昌古镇的交通信息 大众蔚领还值得买吗 旗风级驱逐舰的介绍 从17万跌到11万,一个月卖出1.4万辆,来自北京现代 从17万跌到10.29万,合资品质,外刚内柔,隔音效果棒! 想知道:济宁市 从兖州市到水泊梁山风景名胜区怎么坐公交? 实用主义教育学是在批判什么的基础上提出的 淦田新街属于哪个街道 株洲市渌囗区淦田镇丁公庙位置 淦田社区位于哪个市 大学生如何提升自己赚钱? 从茂县去四姑娘山,自助行怎么走? 四姑娘山到若尔盖草原自驾怎么耍 ...故事,男主也是妖怪,维护着妖怪们的秩序,有个妖怪朋友,还有 从四姑娘山开车到茂县要多久 ...讲日本神话的妖怪什么的,一个个一个个的短故事,还有精美的配图,叫... 安琪拉的灰烬的内容简介 我有一张1999年的 100元钞票 UR35998602 有收藏价值吗? ...给我妈选择一块真正能提高免疫力的保健品,买什么比较有保障呢?_百 ... 深圳市名博家具厂怎么样? 母亲病危,在外服刑的儿子能回来见最后一面并出殡吗? 谁能告诉我,关羽大意失荆洲的过程 关羽真的是因为大意才丢失荆州的吗?里面有什么秘密? 孙权是怎样夺取荆州的? 华硕飞行堡垒fx50j4200这款笔记本电脑怎么样 如果一个双子座男生跟你说两个人不合适却又和好是什么心理? 双子座男朋友说不想谈恋爱了做朋友,我们还有可能复合嘛 辛癸酸形成酸酐的原因 电大钢结构 什么是梁的整体失稳现象 钢柱整体失稳属于正常使用极限状态对吗 逆战银河龙怒皮肤有加成吗 求2014年6月份的入宅吉日 属鸡的人2014年入宅吉日 农历2014年腊月哪天入宅吉日我老公农历七三年四月二十八我农历六月二 ... 求2014年5月份乔迁吉日 发光字电源开关有推荐的吗? 澳洲羊毛绒窗帘褶皱了 微星技嘉和华硕B760主板售后哪个更方便? 窗帘羊毛绒和妮伦布哪个好