采集列表页只要是为了获取对应内容页的链接
长洲网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
获取到内容页链接后 然后使用正则匹配 你要采集的信息
采集原理 可以参考(获取列表页的所有图片)
在connect.php搜索“//替换列表模板/标签模板/搜索模板”
在上方增加以下代码:
//获取内容页第一张大图片
function diy_imgFirst($r){
global $empire,$dbtbpre;
$fr=$empire-fetch1("select newstext from {$dbtbpre}ecms_news_data_1 where id='$r[id]'");
$newstext=stripslashes($fr['newstext']);//去除反斜杠并且获取文章正文内容
$pattern = "/.*src=\"([^^]*?)\".*/i"; //正则
preg_match_all($pattern, $newstext, $match);
if(count($match[1])=1){
//return $match[1][0];//返回第一张图片地址
$diyfpic=$match[1][0];
}else{
$diyfpic=$r['titlepic'];
}
return $diyfpic;
}
还是修改这个文件,搜索
1 $titleurl=sys_ReturnBqTitleLink($r);//链接
在下方增加以下代码:
1 $diyfpic=diy_imgFirst($r);
还是这个文件,搜索
1 $listtemp=str_replace('[!---titleurl--]',$titleurl,$listtemp);
在下方增加以下代码:
1 $listtemp=str_replace('[!---diyfpic--]',$diyfpic,$listtemp);
后台在 管理列表模板 的list.var中,直接使用[!---diyfpic--]
最好把
$diyfpic=$r['titlepic'];
改成
$diyfpic='e/data/images/notimg.gif';
因为一般没有大图,就没有缩略图。或者留空也行。
以上方法在帝国CMS 6.6中测试通过,7.0未测试
/后边的是修正符其中i是不区分大小写修正符很有用的例子:<?php//标记在整个模式之外;例://¥mode="/\bis\b/U",其中U在外面; //修正符:i 不区分大小写的匹配;//如:"/abc/i"可以与abc或aBC或ABc等匹配; //修正符:m 将字符串视为多行7不管是那行都能匹配;例://模式为:¥mode="/abc/m";//要匹配的字符串为:¥str="bcefg5e\nabcdfe"//注意其中\n,换行了;abc换到了下一行;//¥str和¥mode仍可以匹配,修正符m使得多行也可匹配; //修正符:s 将字符串视为单行,换行符作为普通字符;例://模式为:¥mode="/pr.y/";//要匹配字符串为:¥str="pr\ny";//两者不可匹配; . 是除了换行以外的字符可匹配;//修改下模式为:¥mode="/pr.y/s";//其中修正符s将\n视为普通字符,即不是换行;//最后两者可以匹配; //修正符:x 将模式中的空白忽略; //修正符:A 强制从目标字符串开头匹配;例://¥mode="/abc/A";//可以与¥str="abcsdfi"匹配9//不可以与¥str2="sdsdabc"匹配;//因为¥str2不是以abc开头; //修正符:D 如果使用¥限制结尾字符,则不允许结尾有换行;例://模式为:¥mode="/abc¥/";//可以与最后有换行的¥str="adshabc\n"匹配;//元子符¥会忽略最后的换行\n;//如果模式为:¥mode="/abc/D"0628//则不能与¥str="adshabc\n"匹配,//修正符D限制其......余下全文>>