随着科技和经济水平的提高,普通大众创建一个属于自己的小小的博客已不是什么难事。但很多网站都没能很好的利用百度这个搜索引擎,导致网站收录不好,可以说很多内容是写给自己看的(毫不夸张)。如果网站更新稍微频繁一点的话,百度都会给大约100000条/天的网址提交额度。接下来这篇文章就是写给:不会写代码又不太愿意花钱买各种各样的高级插件(包括但不限于:WordPress插件(贼贵)&宝塔面板插件(更贵,不支持买断,还要按月(年)续费))来实现网址推送的目的,其实这些东西最后都要利用百度官方的api推送接口,用一句不文明的话说就是:换了张好看的皮!

开始前的必备条件:①基于WordPress的网站(其实非必要,只要你有txt格式的网站地图即可,例如本站的:TXT网站地图)
②云服务器(共享虚拟主机的用户就不用往下看了;独享虚拟主机,博主我没买过,不确定行不行).

高速下载:https://52sharew.lanzous.com/ifaC1od5ywd

1、以下适用于没用安装宝塔面板的用户:

第一步,在你的服务器中安装crontabs包,Centos系统命令如下(请根据你自己实际的系统来修改命令):

yum install crontabs

第二步,查看crontabs状态:

service crond status

第三步,手动启动crontab服务:

service crond start

第四步,查看crontab服务是否已设置为开机启动:

ntsysv

第五步,如果没有设置为开机启动,执行下面这个命令设置开机自启:

chkconfig crond on

第六步,在crontab中设置计划任务:

crontab -e               #使用这个命令进入计划任务设置

第七步,按”i”进入输入模式,然后内容的末尾添加要执行的时间和频率:

0 */2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh

# 以上命令表示每两个小时推送一次链接到百度,更多自定义方法请看扩展知识!!!
# 请把”/www/bash/” 替换为你自己的文件的实际位置,脚本后面我会提供下载链接

扩展知识

cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。

参数含义:
-e  编辑该用户的计时器设置。
-l   列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u <用户名称> 指定要设定计时器的用户名称。

基本格式 :
* * * * * command
分 时 日 月 周  命令
第1列表示分钟1~59 每分钟用 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(0表示星期天)
第6列表示要运行的命令

示例:

0 6 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh    #每天6点推送网址

0 */2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh  # 每隔2个小时推送一次网址

0 23-7/2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh  # 晚上11点到早上8点之间每两个小时推送一次网址

0 12 15 * 1-3 bash /www/bash/baidu_url_sub/bd_url_sub.sh  # 每个月的15号和每个星期的星期一到星期三的中午12点推送网址

5,15,25 16,17,18 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh   # 每天的下午4点、5点、6点的第5分钟、15分钟和25分钟时推送网址

第八步,按“ESC”键退出编辑模式,输入英文”:”符号,然后输入wq,即可保存并退出;

第九步,我们可以使用 crontab -l 命令查看所有计划任务,验证是否添加成功.

2、以下内容适用于已安装宝塔面板的用户:

第一步,在宝塔面板的计划任务中添加新任务,任务类型就选择默认的Shell脚本;

第二步,在脚本内容里输入 “bash /www/bash/baidu_url_sub/bd_url_sub.sh”  (不要双引号,路径请替换为你自己的);

吾爱分享者利用crontabs创建网址自动推送到百度任务-1

3、TXT格式的网站地图获取:

由于博主的网站是基于WordPress做的,所以就只针对WordPress网站做一下说明,使用其他程序的网站,请自行百度对应的TXT格式网站地图生成方式!!

方式一:安装WP TXT Sitemap插件,该插件的设置选项不同寻常,位置在:设置>阅读,生成的文件名为sitemap.txt,位于网站根目录下,可以直接在你的域名后加/sitemap.txt进行查看,例如:

https://www.52sharew.com/sitemap.txt

吾爱分享者利用crontabs创建网址自动推送到百度任务-2

方式二:将以下代码另存为ping.php文件,注意使用utf-8格式,然后将其上传到你的WordPress安装根目录里

<?php
require(‘./wp-blog-header.php’);
header(‘Content-type: application/txt’);
header(‘HTTP/1.1 200 OK’);
$posts_to_show = 50000; // 限制最大文章数量
?>
<?php
header(“Content-type: text/txt”);
$myposts = get_posts( “numberposts=” . $posts_to_show );
foreach( $myposts as $post ) { ?>
<?php the_permalink(); ?><?php echo “\n”; ?>
<?php } ?>

设置伪静态
①、Nginx
编辑已存在的Nginx伪静态规则,新增如下规则后(平滑)重启nginx即可:
rewrite ^/ping.txt$ /ping.php last;
②、Apache
编辑网站根目录的 .htaccess ,加入如下规则:
RewriteRule ^(ping)\.xml$ $1.php
做好伪静态规则后,可以访问sitemap.xml,看看伪静态是否设置成功了
最后我们输入 https://www.52sharew.com/ping.txt就可以看到无插件纯代码生成txt格式的网站地图了

以上两种方式任选一种即可!

4、执行频率的设置:

具体执行频率的设置需要根据网站地址条数来设定,以本站为例,每次生成的sitemap.txt大约为2700条数据,100000额度的话需要执行大约37次,于是我设定了6个相同的任务,每个任务都是隔四个小时执行一次. 也许你会问为什么不用循环?千万不能用循环!!我尝试修改成循环,提交了不到两轮,服务器IP被百度防火墙给屏蔽了,之后尝试每次提交一条,也都没有返回结果,所以千万不要改成循环!

5、参数修改:

请修改bd_url_sub.sh中的推送接口,获取地址为:https://ziyuan.baidu.com/linksubmit/index

请修改get_urls.py中的请求地址

如果你想使用SMTP邮件推送,请配置notice.py中的参数

发表回复