前言
博客已經寫了一段時間,這幾天看到小伙伴在群上貼了一張圖,大體是關于:在Google搜索某個關鍵字,可以在前幾條記錄里面找到他的博客內容。于是我抱著試一試的心態,在Google上搜了下自己博客里的一些關鍵字,效果出乎意料的好!但當我用百度,好搜,神馬之類的國內搜索引擎,搜索同樣的關鍵字,卻幾乎看不到任何博客信息。
Google搜索效果
搜索以下幾個關鍵字,都可以在前面幾條可以找到我的博客!
搜索"xtutu"
搜索"游戲產品 客戶端"
搜索"游戲 轉盤 算法"
搜索"服務端架構 思考"
搜索"c++ 添加 lua"
手動提交sitemap
畢竟在國內,百度更加符合國人的口味,而且近一段時間百度首頁也做了很多改版,比如我的關注、推薦等等,看新聞的確是方便了不少。
既然百度無法主動搜索到我的網站,只能靠我們自己把網站信息手動提交給百度了!
地址
同理,好搜,神馬搜索都可以自己手動來提交網站的sitemap。
但是!!!
然后百度居然不支持hexo的sitemap!!!
解決方法
好在百度還支持主動推送,所以只好自己寫腳本把網站的sitemap.xml解析成百度支持的格式,然后再發給ta。
代碼如下,注意配置這塊改成自己的。自己的信息可以從這里找到,就是圖中的接口調用地址。
# !/usr/bin/env python
# coding=utf8
import urllib2
import urllib
from xml.dom import minidom
def get_nodevalue(node, index = 0):
return node.childNodes[index].nodeValue if node else ''
# 配置信息
# 如果sitemap中的地址是xtutu.me,當設為True的時候,就會自動把地址補為www.xtutu.me
needAddWWW = False
sitemapUrl = "http://www.xtutu.me/sitemap.xml"
baiduUrl = "http://data.zz.baidu.com/urls?site=www.xtutu.me&token=xxxxxxxxxxxxxx&type=original"
# 獲取并解析xml文件
linksStr = ""
req = urllib2.urlopen(sitemapUrl)
xmlVal = req.read()
doc = minidom.parseString(xmlVal)
root = doc.documentElement
urlSet = root.getElementsByTagName('url')
for node in urlSet:
urlString = get_nodevalue(node.getElementsByTagName('loc')[0]).encode('utf-8','ignore')
if needAddWWW: # 判斷是否需添加www字段
urlString = urlString.replace("://", "://www.")
linksStr = linksStr + urlString + "\n"
print linksStr
# 發送xml文件給百度
req = urllib2.urlopen(baiduUrl, linksStr)
content = req.read()
print content
raw_input("Press ENTER to exit")
輸出結果
http://www.xtutu.me/search-engine-and-my-website/
http://www.xtutu.me/baidu_verify_4Lm08kj7TJ.html
http://www.xtutu.me/egret-graphics-draw-optimize/
http://www.xtutu.me/game-wheel-lottery/
http://www.xtutu.me/think-about-server/
http://www.xtutu.me/helloworld/
http://www.xtutu.me/typescript-javascript-compare/
http://www.xtutu.me/egret-source-part-mainloop/
http://www.xtutu.me/egret-source-part-render/
http://www.xtutu.me/how-to-create-a-good-game-for-client-programmer/
http://www.xtutu.me/python-script-to-upload-directory-from-windows-to-a-linux-server-achieving-one-click-deployment/
http://www.xtutu.me/the-date-object-in-js/
http://www.xtutu.me/coffeescript-javascript-compare/
http://www.xtutu.me/add-lua-support-for-cplusplus-project/
http://www.xtutu.me/categories/index.html
http://www.xtutu.me/tags/index.html
http://www.xtutu.me/egret/
http://www.xtutu.me/about/index.html
http://www.xtutu.me/404.html
{"remain":387,"success":19}
代碼地址
https://github.com/xtutu/util-script
百度,我只能幫你到這里了
后記
好搜,神馬在提交了sitemap之后,搜索結果的確是有了不少改善,但是還是沒有google那么精準。
至于百度。。。搜索結果依舊毫無改善。
查了下資料,才發現居然是因為Github主動屏蔽了來自于BaiduSpider的請求。- -!
不過這一情況可以通過CDN(國內的很多平臺都需要備案)來解決,可以參考以下這篇文章:
http://www.dozer.cc/2015/06/github-pages-and-cdn.html
目前我是把博客移到了gitcafe上。。。但是即使我做了這么多,百度依舊搜不到我的博客,看來只能慢慢等百度收錄了。。。
本文同步發表在個人網站xtutu.me