网站自动采集发布(什么是定时自动发布?就是通用的方法有什么用?)

优采云 发布时间: 2022-02-07 01:19

  网站自动采集发布(什么是定时自动发布?就是通用的方法有什么用?)

  什么是定时自动释放?

  定时自动发布,顾名思义,就是让程序执行,每x次发布n条网站内容。如果你有服务器,那么你有多种选择,比如计划任务等,你可以实现它。我这里说的定时发布是一个通用的方法,不管是独立服务器还是虚拟主机网站都可以使用。

  网站定时自动发布有什么用?

  网站定期自动发布内容对于网站优化来说是非常必要的,它可以让蜘蛛形成一种习惯,为搜索引擎创造一个好的形象。几乎所有seo朋友都应该知道,内容是定期更新的。但实际上,由于各种原因,比如忙碌、健忘等,很难长期坚持下去。以作者为例,有时间和心情的时候,可能一口气写了十几二十篇文章,但忙的时候(不一定忙),可能什么都不在乎。

  正常情况下,爬取了某个网站之后,蜘蛛会抓取网站的所有有用信息,然后在一段时间后回来查看网站的内容是否更新的时间,并且没有新的内容可以爬取,然后根据网站的更新频率等因素,逐渐养成蜘蛛定期爬取网站的习惯。由于蜘蛛的爬行特性,网站 的更新频率决定了蜘蛛爬行的频率。如果 网站 更新更频繁,新内容更多,蜘蛛会爬得更频繁更快,相应地,收录 会更快更多。因此,要想对网站获得好的排名,首先要保证网站的页面收录

  虚拟主机实现定时自动释放的原理

  应该是在 2009 年我接手第一个 seo 项目的时候。本来只是为客户端网站开发的,然后整个流程都进行了,包括内容更新、排名优化……都是泪流满面。~上面说的问题当时就出现了,我坚持更新内容,然后就有了当前定时发布功能(优采云需要有优采云的意识^_^) .

  我们先来看看正常发布网站数据的过程:添加文章>编辑内容>点击提交。我们需要点击这里,我们需要使用按钮向导吗?但内容从何而来?按钮向导无法编辑内容。

  换句话说,发布内容的本质是什么?将一条数据附加到网络数据库。然后我们可以让程序追加数据。再次,数据从何而来?采集 > 加了,好像不错,不过我不需要采集,需要手动编辑,所以……

  定时自动发布的原理其实很简单:提前录入数据,在数据库中添加一个字段,比如status,默认为0,前台调用status=1的那些数据,那么为前台,对于用户,对于搜索引擎,那些status=0的Data是不发布的。我们只需要使用程序定期将一些status=0的数据修改为status=1即可。

  实现虚拟主机定时自动发布的方法

  原理我们明白了,但是怎么实现呢?虚拟主机无法创建计划任务,我们也无法编写程序来保持其运行(资源密集型)。最后,我的方法是在用户访问 网站 时触发预定发布。比如用户访问这个网站,我们可以判断内容是否需要发布。

  此时,可能有朋友要问了:我的网站是新站点,没人访问怎么办?这个问题实际上是无法解决的。首先你要多加关注新站,你的访问也是网站的用户。另外,提交给搜索引擎,添加外链蜘蛛(蜘蛛也是网站用户)都是很好的措施。

  1、后台添加对应界面,用户保存发布时间间隔,开始时间和结束发布时间

  

  2、创建一张表,至少需要一个字段来记录上次发布的时间,比如ID | 时间

  3、虚拟主机实现定时自动释放功能

  function autoPush(){

$conf=S('conf');//一些系统配置文件,包括站点名称、域名、发布时间间隔、开始时间、结束时间等等

if($conf['day']){//如果设定了发布时间间隔 为0的时候不自动发布

$time=M('Time')->getField('time');//上次发布时间

$now=time();//现在时间

$hour=date('H',$now);//当前几点了

if($hour>$conf['start'] && $hour$conf['day']*86400){

//如果当前小时数>发布开始时间 并且 小于发布结束时间 并且 与上次发布时间间隔超过设定的发布时间间隔 就 该发布了

//$conf['start']为发布开始时间 $conf['end']为发布结束时间 $conf['day']为发布间隔时间 我设定的是天,支持2位浮点数,如0.01天,大约为14分钟

$value=M('Article')->where('s=0')->order('id asc')->find();//找到需要发布的内容 这里的是就是上文提到的status用于判断是否发布

if($value){

//如果存在没有发布的内容

$value['s']=1;//设置为发布

$value['addtime']=$now;//设置时间(注意,前台程序的时间建议是发的时间而不是后台添加编辑的时间)

//下面的代码用于自动推送 如果你没有相关功能或需求 只需要更新数据库即可:M('Article')->save($value)

$path=M('Category')->where('id='.$value['bid'])->getField('path');

if(M('Article')->save($value)){

$url='http://www.'.$conf['domain'].'/'.$path.''.$id.'.html';

if(push($url)){

M('Article')->where('id='.$value['id'])->setField('push',1);

}

}

}

//最后,不要忘了更新那个记录上次发布时间的表

M('Time')->where('id=1')->setField('time',$now);

}

}

}

  4、在前台的每个用户可访问的页面上调用此函数。在前期没有用户的情况下,建议添加后台,这样在访问后台时也可以调用该函数实现定时自动释放。我正在使用 ThinkPHP,所以在 emptyController 中调用一次。

  

  效果与优化

  

  以上是一个雕塑网站()的发布。从图中可以看出,发布时间间隔基本是12分钟。此时,感觉规律性太强了,明显不是人为操作。不知道有没有想过,但还是改了,让时间看起来更自然一些。就是在更新发布时间的时候加一个随机值(我用了1到10分钟):

  $now=$now+rand(1,10)*60;

M('Time')->where('id=1')->setField('time',$now);

  

  © 致远2020-02-06,原创内容,转载请注明错误:虚拟主机定时自动发布的思路及实现方法网站(php)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线