开发总结 — SEO篇(向百度主动推送链接)

作者:杨润炜
日期:2015/12/11 12:38

由于昨日早上给本站加了sitemap和robots.txt,使得百度终于在2015-12-10 16:54:09收录了本站,可喜可贺呀呀。然后也不得不吐槽下百度,人家谷歌在我把站点刚放上去就收录了。总而言之,因为百度爬虫我也学习了不少东西,哈哈。
好了,进入今日正题。

由于百度没有收录我的文章详情页面,所以我利用在百度站长工具上的主动推送方式进行链接的提交,同时在linux下利用crontab做了定时任务来执行推送。

注:前提条件是需要你有百度站长账号,并关联到你的域名

百度主动推送

参阅下百度关于主动推送文档

1.查找每天更新的文章及标签,生成urls.txt文件。produceUrls.js脚本文件如下:

  1. var config = require("./conf/config");
  2. var mongoose = require('mongoose');
  3. var db = require('./module/mongo');
  4. var async = require('async');
  5. var mongodbOperation = require("./application/mongodbOperation");
  6. var article = require('./model/article');
  7. var tag = require('./model/tag');
  8. var fs = require('fs');
  9. var _ = require("underscore");
  10. var moment = require('moment');
  11. async.auto({
  12. // 连接mongodb
  13. connectDB: function (callback) {
  14. db.connect(callback);
  15. }
  16. },
  17. function (err, results) {
  18. if (err) {
  19. console.log(err);
  20. return process.exit(-1);
  21. }
  22. async.auto({
  23. getArticles: function (callback) {
  24. ...
  25. },
  26. getTags: function (callback) {
  27. ...
  28. }
  29. },
  30. function (err, results) {
  31. if (err) {
  32. console.log(err);
  33. return process.exit(-1);
  34. }
  35. var urls = '';
  36. // 首页
  37. urls += config.portalUrl + '\n';
  38. // 技术博客
  39. urls += config.portalUrl + '/tech' + '\n';
  40. // 生活杂记
  41. urls += config.portalUrl + '/life' + '\n';
  42. // 文章链接
  43. _.each(results.getArticles, function (item) {
  44. if (item.order) {
  45. urls += config.portalUrl + '/a/' + item.order + '.html' +'\n';
  46. }
  47. });
  48. // 标签链接
  49. _.each(results.getTags, function (item) {
  50. if (item.enName) {
  51. urls += config.portalUrl + '/tag/' + item.enName + '\n';
  52. }
  53. });
  54. // 写入文件
  55. fs.writeFileSync('urls.txt', urls);
  56. // 退出mongo连接
  57. process.exit(1);
  58. }
  59. );
  60. }
  61. );

执行命令看看效果

  1. node produceUrls.js;
  2. cat urls.txt;

可看到如下显示:

  1. http://www.yangrunwei.com
  2. http://www.yangrunwei.com/tech
  3. http://www.yangrunwei.com/life
  4. http://www.yangrunwei.com/a/3
  5. http://www.yangrunwei.com/a/2
  6. http://www.yangrunwei.com/a/0
  7. http://www.yangrunwei.com/tag/qianlizhixing
  8. http://www.yangrunwei.com/tag/webpack
  9. http://www.yangrunwei.com/tag/js
  10. http://www.yangrunwei.com/tag/less

这样就算成功了一半咯

2.利用百度站长工具提供了推送密钥,curl提交urls.txt文件到百度

  1. curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.yangrunwei.com&token=你的密钥&type=original"

出现如下结果表示成功:

  1. {
  2. "remain": (显示剩余可提交的链接条数 ),
  3. "success":(显示提交成功的链接条数)
  4. }

linux定时任务

我是通过参考此博文才解决的

1.输入此命令进行定时任务的编辑

  1. crontab -e

一开始会让你选择编辑器,我选的是vim。

2.加入定时任务

  1. # Push baidu urls of http://www.yangrunwei.com everyday(这里是注释)
  2. 00 00 * * * (这里写你要定时执行的命令)

wq保存后即可让定时任务生效。还可通过crontab -l查到你当前用户的定时任务。
哈哈,这样每天凌晨0点时就把之前更新的链接提交给百度咯。是不是很简单呀。

再附上cron文件语法:

  1. 小时 星期 命令
  2. 0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日,一行对应一个任务)

特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字

感谢您的阅读!
如果看完后有任何疑问,欢迎拍砖。
欢迎转载,转载请注明出处:http://www.yangrunwei.com/a/6.html
邮箱:glowrypauky@gmail.com
QQ: 892413924