DEDECMS之九 文章采集

到很多网友都为织梦(DEDECMS)的采集教程头疼,的确,官方出的教程太笼统了,什么都没说,换个网站你什么都做不了,这个教程是最详尽的教程,让你一看即会!

一、列表采集

第一步、我们打开织梦后台点击采集——采集节点管理——增加新节点

第二步、这里我们以采集普通文章为例,我们选择普通文章,然后确定

第三步、进入了采集的设置页面,填写节点名称。

第四步、打开你想要采集的文章列表页。

这里以这个网站为例,http://www.nanmafan.com/xunyicao/打开这个页面,

右键——查看源文件找到目标页面编码,就在charset后面)

第五步、填写页面的基本信息,填完后如图

第六步、填写列表网址获取规则看看文章列表第一页的地址。

http://www.nanmafan.com/xunyicao/list_49_1.html

对比第二页的地址http://www.nanmafan.com/xunyicao/list_49_2.html

我们发现了他们除了49_后面的数字不一样,其他的都一样,所以我们可以这样写

http://www.nanmafan.com/xunyicao/list_49_(*).html

就是把1换成了(*)因为这里只有2页,所以我们就填从1到2每页递增当然是1了,2-1...是等于1吧

这里我们就填写完了

可能大家采集的有些列表没有规则,那就只有手工指定列表网址了,如图

每行写一个页面地址

第七步、填写文章网址匹配规则了,回到文章列表页

右键查看源文件找到区域开始的HTML,就是找文章列表开始的标志。

我们很容易的找到了如图中的“新闻列表”。从这里开始,后面就是文章列表里,再找文章列表结束的HTML

就是这个了,一个很容易找到的标志
如果链接中含有图片:
不处理采集为缩略图这里根据自己的需要选择

二、内容页采集

第八步、对区域网址进行再次筛选:

(使用正则表达式)必须包含:(优先级高于后者)

不能包含:打开源文件,我们可以很清楚的看到,文章链接都是以.html结束的所以,我们在必须包含后面填.html如果遇到有些列表很麻烦,还可以填写后面的不能包含

点击保存设置进入下一步,可以看到我们获得的文章网址
看到这些就是对的了,我们保存信息进入下一步设置内容字段获取规则
我们看看文章有没有分页,随便进入一篇文章看看。。我们看到这里的文章没有分页
所以这里的我们就默认了

我们现在来找文章标题等等随便进入一篇文章,右键查看源文件
看看这些

依照源码填写

第九步、填写文章内容的开始,结束和上面的一样,找到开始和结束标志.

开始部分如图

结束部分如图

最后填写如图

第十步、你想过滤文章中的什么内容就到过滤规则里写吧,比如要过滤文章中的图片,

选择常用规则,如图

再勾选IMG,如图

然后确定

这样我们就把正文中的图片过滤了

第十一步、设置完毕后点保存设置并预览,如图

这样一个采集规则就写好了,很简单吧有些网站很难写,可要多下点功夫了哦
我们点保存并开始采集——开始采集网页一会的功夫就采集完了

看看我们采集到的文章

最后、导出数据

首先选择要导入到的栏目,按“请选择”那里即可在弹出的窗口中选择你需要导入的栏目发布选项这里一般默认即可,除非你不想马上发布。每批导入默认是30条,这里修改与否都无所谓,附带选项一般选“排除重复标题”,至于自动生成HTML那个选项建议先别生成,因为我们还要去批量提取摘要和关键字。

文章标题
匹配规则:<title>[内容]</title>
过滤规则:{dede:trimreplace=""}_XXX网站{/dede:trim}

来自百度http://jingyan.baidu.com/article/642c9d34ab179b644a46f782.html

三、采集规则补充

(一)文字过滤与替换的方法

1.去除超链接,这种最常用。

{dede:trim replace=”}<a([^>]*)>{/dede:trim}
{dede:trim replace=”}</a>{/dede:trim}
如果填成这样,那就把链接的文本也一起去掉了

{dede:trim replace=”}<a([^>]*)>(.*)</a>{/dede:trim}

2.过滤JS调用广告,比如GG的广告,就加个这样的:

{dede:trim replace=”}<script([^>]*)>(.*)</script>{/dede:trim}

3.过滤div标签。

这个很重要,如果没过滤干净则可能使发布出来的文章版面错位, 目前大多数遇到采集后错位的原因在此。

{dede:trim replace=”}<div([^.]*)>{/dede:trim}
{dede:trim replace=”}</div>{/dede:trim}

有的时候也需要这样子过滤:

{dede:trim replace=”}<div 选择器>(.*)</div>{/dede:trim}

4.其它的过滤规则可以照以上规律进行推出。
5.过滤摘要和关键字使用,经常要用到。

{dede:trim replace=”}{/dede:trim}

6.简单替换。
{dede:trim replace=’替换后的词语’}要替换的词语{/dede:trim}
采集的内容当然也要求搜索引擎收录, 过滤和替换目的是减少重复,进行伪原创,如何具体的操作,就看个人的要求与喜好了。

(二)内容页指定作者、来源

指定value值即可实现:

{dede:item field=‘writer‘ value=‘小军‘ isunit=‘‘ isdown=‘‘}
{dede:match}{/dede:match}

{dede:function}{/dede:function}
{/dede:item}

{dede:item field=‘source‘ value=‘军事网‘ isunit=‘‘ isdown=‘‘}
{dede:match}{/dede:match}

{dede:function}{/dede:function}
{/dede:item}

时间: 2024-11-05 15:50:33

DEDECMS之九 文章采集的相关文章

织梦DedeCMS未审核文章更新为当前时间

对于个人站长来说,每天文章的更新量都是个巨大的问题,有时候我们去别的网站采集大量的文章,然后自己进行手工整理伪原创,但是审核的时候,时间却是采集发布的时间.一方面这个对用户体验不好,别人会认为文章不是最新的;另一方面,对搜索引擎来说,这个也是采集的证据吧,虽然官方没证实过这个. 那织梦DedeCMS怎么让未审核内容的更新时间为当前时间呢?原理是非常简单的,就是使用SQL语句Update一下文章的发布时间,具体实现的方法有两种: 1.增加当前时间按钮 这个方法是在编辑文章的页面增加一个更新时间的按

织梦(dedecms)后台删除文章后台还有分页显示解决方法

鸡哥今天在给单位改一个织梦网站的时候发现了一个问题,由于本来的程序有7000多篇文章,鸡哥就直接执行了个sql语句给删除了,但是发现删除之后后台文章的分页还在显示着,错误截图给大家看看 看到没,经过鸡哥百度搜索发现这其实并不是鸡哥的操作问题,而是这本就是织梦5.7的一个bug,下边就给大家写下修复方法很简单: 先找到你的根目录中/dede/content_list.php这个文件打开找到 这段代码,可以直接搜索缓存处理就能找到 把红框中的代码修改为: $arr = $dsql->GetOne(&qu

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问题! 这种问题,一般出现在产品站内页,因为会有产品缩略图的图片展示,所以今天我专门搜集了这方便的帖子! 为大家来解决这个问题,我想一定能帮助到大家! 好了话不多说,写内容先! 文章内容页和图片集内容页,缩略图的调用.适合内页中调用. <img src="{dede:field.picname 

dedecms实现编辑文章时不自动修改发布时间

dedecms默认编辑文章时自动修改文章的发布时间,如何让它不自动修改发布时间呢? 找到后台编辑文章的模板文件稍作调整即可. 文件/dede/templets/artical_edit.htm 把 $nowtime = GetDateTimeMk(time()); 改成 $nowtime = GetDateTimeMk($arcRow["pubdate"]);

dedecms中调用文章,标题超过限制字数时,在标题后面加上省略号...

在dedecms中调用文章,当标题超过限制字数时,怎么在标题后面加上……呢.其实不论是在首页还是列表页还是内容页调用文章,不管是arclist还是list标签调用文章,只需要把[field:title]这个标签适当修改. 一般是类似于这样: {dede:arclist row='10'} <li><a href="[field:arcurl /]" title="[field:fulltitle/]">[field:title/]</a

微信公众号文章采集器

今天讨教大叔给大家聊聊什么是微信公众号文章采集器?微信公众号文章采集器的用处在哪里? 首先简单的介绍下微信公众号文章采集器:它是由讨教平台开发,专门服务于中小型互联网企业的一款内容价值输出系统.帮助中小型企业在文章发布,内容输出,大量提高了员工工作效率的以及企业的运营成本. 在采集系统中,我们可以把所有的微信公众号,只需要你手动输入 你想采集公众号的名称输入采集系统上,即可快速的帮助你完成此公众号的内容全部采集.采集过来的文章,您可以选择修改标题和内容,以及过滤掉垃圾文章. 我们讨教平台测试过:

dedecms:自定义文章文件名生成目录形式的方法

在DEDECMS中,发布文章时可以自定义文件名,生成譬如:xxx.com/a/zidingyi.html 的URL文件 然而如果想将文章生成为目录形式呢?譬如:xxx.com/a/zidingyi/index.html 只需要简单一步即可搞定. 涉及文件: include/helpers/channelunit.helper.php  189行 $articleRule = dirname($articleRule).'/'.$filename.$GLOBALS['cfg_df_ext']; 改

织梦DEDECMS 5.7文章列表第一页dedefield.content

功能介绍:有很多DEDEcms使用者,在二级文章列表中加入了{dede:field.content/},但在二级栏目中的每一页列表中都存在内容:使用该功能可以只在第一页显示. 注意:只针对最新dedecms5.7 第一步:找到修改文件arc.listview.class.php 第二步:273 行 $this->ParseTempletsFirst();  删除掉 第三步:299行 找到$this->ParseDMFields($this->PageNo,1);回车插入$this->

dedecms获取当前文章所在栏目URL

我们知道dedecms有一个面包屑导航的调用函数,{dede:field name='position'/},这个样式是固定的,有时要个性化一些的话需要修改很多地方,那么织梦cms有没其他方法获取当前文章所在栏目URL呢?有的! <a href='{dede:type typeid='0' row=1}[field:typelink /]{/dede:type}' style="color:blue;">{dede:field.typename/}</a> 这样