个人工具
名字空间
变换
操作

CMSware采集问答及技巧

来自站长百科
跳转到: 导航, 搜索

导航:返回上一页

  • 问题:能否倒序采集呀? 比如采集的页面没有可采集文章发布日期,但文章按照发布时间倒序分页排列,最新的排在第一页最前,最老的排在最后一页最后。 思维(CMSware)能否通过采集,使得发布时也是按照这个顺序排列?一般采集都是最新的最先采集,没有原始日期的话,变成最老文章,列到最后去了。
  • 答:时间没办法采集,但有采集时间戳的,可以用时间戳放进一个字段,来决定采集后的顺序 。 自己设置一个采集时间字段,然后调用时按这个字段排序。也就是在内容模型里增加一个采集时间的字段cTimer,采集规则写{Timer},然后在模版中调用时使用这个采集时间字段cTimer排序
  • 问题:采集时报错如下
Exception message: preg_match(): Compilation failed: missing terminating ] for character class at offset 90
Error code: 2
-- Backtrace --
(): error.handler
E:\web\cms\admin\modules\crawler.php(379): preg_match
E:\web\cms\admin\modules\crawler.php(483): parse_html.private_executeparse
E:\web\cms\admin\modules\crawler.php(599): parse_html.parse
E:\web\cms\admin\modules\crawler.php(861): parse_html.runtask
E:\web\cms\admin\admin_collection.php(103): include
  • 答:采集正则表达式有误,请修正
  • 问题: 采集时是不是很耗内存和CPU
  • 答:会影响客户端一定的资源占用,但是主要消耗是在服务端的
  • 问题: 自己写的采集过滤函数应该放在哪里
  • 答:过虑函数可以在setting/crawler.ini.php里面添加、修改
  • 问题: 关于采集的服务器支持, fopen() vs curl()。我曾经和服务器运营商联系过这个问题,他们说由于安全问题不能支持fopen,但是同样的,他们说有一个更强大的远程调用函数CURL可以解决相同的问题。是不是服务器不支持fopen就不能支持采集?
  • 答:是的,现在思维(CMSware)是用fopen支持url访问的形式来实现采集,因为这个方法最普遍也兼容性最好,这是php内置功能,大多数服务商都支持.

而采用curl方式,那是php的一个扩展模块,很多服务商不一定安装和支持这个模块的,我们不采用.

  • 问题:现在采集的内容,时间是不是只能是当天的?我想要以前的或者固定的时间段可以吗?
  • 答:采集内容不受时间限制,而是受内容列表限制。列表里有什么,就可以采集什么。或者说,打开页面能看见什么,就可以采集什么
  • 问题:有效的URL 的写法出错
<a href='http://news.soufun.com/2005-06-27/448473.htm' target='_blank'>

我写的是

/<a[s]*href=([^"><s]*[0-9]+.htm)/isU

是错误的, 请高手指点

  • 答:缺少单引号,正确写法应该为
/<a[s]*href=\'([^"><s]*[0-9]+.htm)\'/isU
  • 问题:采集时报错如下
Exception message: file(): URL file-access is disabled in the server configuration
Error code: 2
-- Backtrace --
(): error.handler
E:\usr\local\www\data\cms\admin\modules\crawler.php(492): file
E:\usr\local\www\data\cms\admin\modules\crawler.php(536): parse_html.getremotefilecontent
E:\usr\local\www\data\cms\admin\modules\crawler.php(892): parse_html.indexparse
E:\usr\local\www\data\cms\admin\admin_collection.php(103): include
  • 答:采集的目标服务器禁止采集
  • 问题: 我已经采集的东西导入后被我删除了,我想再采就采不到了,怎么办
  • 答:在“参数设置”--“采集设置”把‘是否重复采集”选择为“是”,或者把“自动隐藏已导入的采集记录”选择为“否” 然后再找到那些已经采过的记录,删掉
  • 问题:采集图片多的网站有时会停止
  • 答:很可能是php的内存分配不足,加大些估计就好了




参考来源