采集关键的几个步骤
一:先建好栏目
二:增加采集节点(需要选择栏目)
三:录入节点名称
四:如果有很多页,只需录入采集页面地址方式二中的内容
地址为
http://www.sznest.net/news.asp?big_class_id=3&page=[page]
页码从1到多少页之间、间隔倍数为1(这个多少页即被采集的网站的实际页数,注意这里修改后,在采集页面地址中会自动生成页面的地址列表)
五:入库栏目可以重新选择
六:信息链接区域正则:如:
<TD width="23%" align="center">日期</TD></TR>[!--smallurl--]<TR class="btrtitle">
七:信息页链接正则:如<a class="news_dian" href="[!--newsurl--]">
八:内容页标题正则:<H2>[!--title--]</H2>
九:新闻正文正则:如</H2>[!--newstext--]<CENTER><STRONG>
常用采集方法:
1:列表页标题图片采集方法:如果列表页的标题图片的Src地址为相对路径,那么,需要在列表页的标题图片正则的右侧的“图片地址前缀”的文本框中加入域名地址,同时勾选上保存本地,如果标题图片在内容页,这里需要留空,同时在内容页-下面的标题图片正则的那里写上正则
2:内容页图片的采集方法:选项请勾选远程保存图片到本地(内容),只有选上之后采集内容页的图片入库的时候才会保存,同时这里不用设置过滤选项,如果内容页的图片地址为图片地址为相对地址时需要加上图片地址的前缀比如http://www.sznest.net,如果这个相对地址中还带有../../的话,那么还需要在过滤选项中使用“替换:(针对标题与内容)”功能将"../../"替换为"/"
3:图片集采集方法:
注意图片采集之前不要删除或者修改默认的图片系统模型中的字段,否则要入库的这个栏目即使绑定的图片系统模型,很有可能增加节点的时候找不到填写图片集正则的地方
如果只要采集图片集的缩略图,正则示例如下:
<p><IMG src=\'[!--ecmsspicurl--]\'></p>
如果只要采集图片集的大图,正则示例如下:
<li><IMG src=\'[!--ecmsbpicurl--]\'></li>
如果只要采集图片的名称,正则示例如下:
<span>[!--ecmspicname--]</span>
如果同时要采集多个的话,需要用用“[!empirecms!]”格开,那么结合上面的示例,正确的正则应该是
<p><IMG src=\'[!--ecmsspicurl--]\'></p>[!empirecms!]<li><IMG src=\'[!--ecmsbpicurl--]\'></li>[!empirecms!]<span>[!--ecmspicname--]</span>
提示一下:图片集的采集的正则表达式是存在old_ecms_infoclass_photo这个表的zz_morepic这个字段中
4:整体页面过滤使用到的情况
比如,在列表页中如果一个产品,但是标题和图片都有链接的时候(也就是存在两个相同链接),但是只想采集一个链接的情况下,可在“附加选项”中的“整体页面过滤正则”文本框中添对其中的一个链接的正则,比如去除图片的链接正则<a href="*"><img src="*"/></a>
5:过滤内容页的图片方法,过滤广告正则,比如下面的
<img[!--ad--]>,<IMG[!--ad--]>
如果图片外面被p标签包含的话,正则如下
<p><img[!--ad--]></p>,<p><IMG[!--ad--]></p>
注意事项:
一:如果列表页的信息链接地址为相对跳径,需要加上地址前缀,比如http://www.sznest.net/,如果信息页的地址前面还有../../这样的,那么可以直接写成<a href="../../[!--newsurl--]"
二:如果采集页面地址带有中文的话,建议在火狐中复制,将其中文进入转换,比如
Product.asp?BigClassName=婚庆布置&Smallclassname=白色
转换之后就变成了
Product.asp?BigClassName=%BB%E9%C7%EC%B2%BC%D6%C3&Smallclassname=%B0%D7%C9%AB
三:如果采集规则正确的话,在管理节点的列表中点击预览会出现采集页面列表,左边的URL是采集的列表页面的URL,如果采集的有分页的话,那么这里会有多项,右边的VIEW预览链接会链接到本列表页所对应的采集内容页列表,此列表页会列表当前列表页对应的每个信息的链接地址,即URL
四:如果采集规则正确的话,但是点预览的时候仍然显示一片空白的话,那么请清空备份的采集数据或者修改匹配正则表达式或者可以尝试精简采集正则,比如
<img src="[!--titlepic--]" width="165" height="103" border="0" / ></a></td>
精简之后
<img src="[!--titlepic--]" width="165"
五:所有的采集正则表达式正则必须有结尾,不能直接以标签结尾,比如下面的信息链接区域正则:
<td height="449" valign="top">[!--smallurl--]
上面的是错误的,正确的可以是下面的
<td height="449" valign="top">[!--smallurl--]<td width="20"> </td>
六:采集常见问题解决办法:
1:采集内容页列表预览的时候同样的URL出现了两次,而PIC循环到后面的一半的时候却匹配不到了
解决办法:因为信息页链接正则的匹配可能是贪婪匹配,所以导致了匹配了两次,所以解决的办法就是增加正则的字符,避免被贪婪匹配
2:如果预览的列表都正常,但是正式采集的时候仍然采集不到的时候的时候,其原因是内容页的正则匹配不到内容页的内容,这个在采集内容页列表在点击右边的某个预览的时候你就会发现仍然匹配不到内容的
3:如果采集规则都正常,并且采集页面列表也能正常显示采集的URL,但是采集内容页列表却仍然显示一片空白,而且清空备分的采集数据之后,仍然是空白的话,可以点击审核采集,将之前审核采集来的信息全部删除,再次预览就正常了,这里不明白,为什么清空备分的采集数据之后,点击审核采集里面仍然有采集数据
还有要注意,如果采集的正则需要更多的HTML代码加以区别的话,而且HTML代码之间有空格或换行的话,这个空间或换行最好不删除,也让空格或换行作为过滤的一个条件
帝国CMS-采集关键的经验总结
所属栏目:建站技术 更新时间:2020-10-30 点击: 次 文章来源:http://www.sznest.net/jzjs/3538.html
【上一篇】:手机访问电脑网时自动跳转代码
【下一篇】:asp用正则批量替换过滤表中所有行的内容中的图片
相关阅读
-
AJAX随机调用数组中不重复的元素
读以记事本中的网址,记事本里中有多个网址,每个一行,然后使用AJAX循环请求随机出来的部分不重复的网址setsrmObj=server.CreateObject("adodb.stream")srmObj.type=1srmObj.mode=3srmObj.opensrmObj.Position=0srmObj.LoadFromFile(…
了解详情 >>
-
DOS命令批量获取文件夹内的名称及批量修改文件夹内名称
批量提取文件夹内文件名一:在文件夹内新建一个文本文件,名称随便起,这里为了演示,暂时起名叫!!!.TXT,放入下面的内容,!!!!!!.TXT这个是被生成的文件,用于存放文件夹内所有的文件名用的DIR*.*/B>!!!!!!.TXT二:将!!!.TXT文件名的后缀改成.bat,然后双击运行,生成了!!!!!!.TXT文件三:打开!!!!!!.TXT文件…
了解详情 >>
-
如何将程序添加到右键菜单中?
方法一:在HKEY_CLASSES_ROOT*shell下面添加sublime_textCommand,修改Command项的默认值的数据数值为"D:我的文档sublimetext3sublime_text.exe""%1"改了之后此方法你会发现不管选择什么类型的文件都会出现在右键菜单中方法二:修改HKEY_CLASS…
了解详情 >>
-
TP5请求信息与请求参数
<?phpnamespaceappindexcontroller;usethinkController;usethinkRequest;classIndexextendsController{publicfunctionindex(){//index/index/index/name/zs/age/18/sex/nan//使用函数助手不需要usethi…
了解详情 >>
-
怎么获取腾讯视频真实地址?
特别说明:1:腾讯视频的真实地址是http://IP地址开头的网址。2:腾讯视频的真实地址依赖于腾讯视频的原网页地址。3:腾讯视频的原网页地址仅限于以https://v.qq.com/x/page/开头的网址,以https://v.qq.com/x/cover/开头的网址,则是无法获取到真实地址的。要获取腾讯视频的真实地址有两个方法,第一种方法很简单,第二个…
了解详情 >>
-
小程序倒计时wxml与js
小程序倒计时jsPage({data:{windowHeight:654,maxtime:"",isHiddenLoading:true,isHiddenToast:true,dataList:{},countDownDay:0,countDownHour:0,countDownMinute:0,countDownSecond:0,},/…
了解详情 >>