全半自動監控網站網站關鍵詞名次(Python成功實現)

  從這篇文章著手不計劃再消耗的錢數量多精神力去寫手續本身的知識,畢竟是各類卷帙上有的內部實質意義。剩下主要需求學習的是內置函數的運用,和一點板塊的運用形式,特別是pycurl, re, threading這些個需求慢慢知道得清楚起來。

  若在學習中有不解的地方,在文章述評中可以提出,假如有空會盡量幫助解釋回答。

  手續需要

  對於稍大的一個網站,往往會有很多網站關鍵詞需求每隔一個周期監控他們的名次,以剖析SEO效果的好壞,及判斷百度Google的動向等等。

  有一個關鍵在於數值的使聚在一起全半自動與否的問題。若常常用Google Analytics剖析數值的話應當會感受到,數值剖析的需要是多端的,只有事前已經有了完備的各個維度的數值往後,能力隨著起初的想法施行剖析,而不會為數值的缺乏所限制。像Google Analytics這麼特別好的工具絕對半自動的將這些個數值使聚在一起了起來,纔給SEO對於流量的多樣化剖析打下了基礎。一樣的,假如想剖析的時刻更自由的話,就需求記錄盡多品類的歷史數值,假如這些個作為每天辦公,那將耗時十分長,所以半自動化的使聚在一起就表現出來出了其關緊性。

  現存的監控名次主要解決方案是運用經濟活動軟件Rank Tracker,但它也有點不是很理想的地方。譬如對於幾乎全部既有軟件都存在的問題,功能不靈活。額外它最大的弊病之一在於它必須要找個具備圖形界面的系統運行(由於它是Java成功實現的,有多操作系統版本,所以不盡然是Windows)。

  對於DIY的Python腳本代碼,在Linux系統裡邊可以將其放到crontab中(系統級規劃擔任的工作),全半自動的定一時的運氣行使聚在一起原始數值。而後在需求的時刻,再用額外的腳壓根兒處置原始數值,施行各個維度的剖析。所需的普通事情狀況下為:Linux系統的低配備布置VPS一臺,一共不超過100行的Python代碼(Windows也能成功實現這些個,但相相比較較麻煩)。

  而後再來剖析更具體的需要。此處我總結概括了一點原則:

  1. 錯非數值量大蒞會對硬盤帶來壓力(譬如每天數G的日記的剖析等),不然把能想到的盡多的數值都記錄下來。由於剖析的需要是多變的,數值若各個方面即可未雨綢繆。

  2. 同上,錯非數值量莫大,不然必須把歷史數值所有保留下來。在大數值量的時刻,也需求如實保留一定時間區間的數值(打個比喻,前3年每月保留一副本,當年每周保留一副本)。歷史數值的相比較在很很長時間候的意義很大。

  3. 當數值十分純一的時刻,運用txt按行保留;當數值比較簡單的時刻,運用csv按行列貯存;當數值比較復雜的時刻,可以思索問題運用MongoDB等key-value型NoSQL貯存;再復雜的時刻,運用MySQL什麼的的關系性數值庫貯存。但這些個不是完全的,仍然要看實際事情狀況而定。

  對於到現在為止的需要,由於是要監控網站關鍵詞名次發展方向,所以普通最多監控幾千個網站關鍵詞就夠了。也許網站比seo較大,想理解數十萬的網站關鍵詞的名次,但對於理解名次發展方向的事情狀況下,沒不可缺少所有查問,隨機選取那裡面一小局部作為樣本就可以了。

  由於最多幾千個網站關鍵詞,所以最好每日記錄一次他們的排帶單位的數據(保障牢穩的事情狀況下,對於單IP,Google每日可以查問5000+詞,百度則可以查問數萬的詞)。並且數值本身,主要為網站關鍵詞、名次、著陸頁URL這幾項,文件大小細小,所以每日都保留一份數值。

  數值的貯存形式上,此時普通提議挑選csv。它和Excel表格(xls)在數值的貯存形式上是一模同樣的。

  代碼成功實現

  這些個代碼需求以下運行背景:

  Linux操作系統

  Python的第三方板塊pycurl

  Python下載網頁的最簡單形式是:

import urllib2

print urllib2.urlopen('

print curl.curl('

  pycurl板塊的運用,除開手續范疇以外,它還考驗對於Web的基礎知識。譬如REFERER等是啥子涵義必須要了解,參看HTTP頭信息相關的知識點。

  無論是否挑選深化學習VIM編輯器,必須要牢記其打字和保留的辦法,Linux裡邊眾多物品只能靠它編輯。

  固然文章中未提到,但搜集數值中常常會碰到書契編碼問題。UTF-8, GB2312等之間大概有啥子差別、Unicode又代表啥子、Python裡邊怎麼改換他們等,這些個都需參照有關資料。

原文:http://semwatch.org/2012/04/monitoring-rank/