最近不知道为什么,我的博客换了模板之后,填写百度的推送token,也推不过去我的文章。于是就在网上找资料,发现一个自动推送给百度的php seo 代码,大概内容就是读取网站的sitemap,然后把链接提交出来,然后设置定时任务去推给百度即可。
代码如下:
我自己把php代码复制到了网站,发现老是报错,一直提示:PHP Warning: file_get_contents(url): failed to open stream: HTTP request failed! 我php版本也换了,php.ini里对应的也都打开了(allow_url_fopen=On)。 还在报错,所以打算曲线救国,自己整一个

需求其实很简单,就是把自己网站的sitemap里的链接提取出来,然后推给百度即可。网站的sitemap现在一般主流的主题都有自带。
一般是你的网站+sitemap.xml 比如我的是:https://vwo50.club/sitemap.xml 。若你没有,则去找个插件就可以实现。
打开百度站长平台,查看提交文章的API 。可以看到它的推送示例,这里我们选用shell的,其他语言也可以,按自己喜好来
编写脚本,把sitemap里的链接都提取出来,按照提示,放到urls.txt里。
代码如下:
主要就几个步骤。访问sitemap.xml,提取https链接,将提取出的所有链接 重定向到 urls.txt。这里值得注意的是 要使用'>' ,因为打算弄定时任务每天推送,考虑到博客不管是有新文章或者是删除了文章的情况。所以每天的脚本跑完后,新的url要覆盖掉之前的。然后resulte.txt的话就可以使用 >>重定向。如下图是我的sitemap格式和提出来的格式


设置定时任务。 我们使用crontab -e 。编辑一条任务,我让它每天0点执行一次。

我们先手动执行一下脚本,一切顺利。


因为今天调用太多次了,所以返回是超出上限了。若是第一次调用,则会告诉你几条成功,还剩几条提交额度
至此就完成了。