以百度為例,思路如下:
1、搜索主關鍵詞,分析相關搜索鏈接,存入網址庫,標記為未抓取。
2、讀取數據庫中標記為未抓取的網址,抓取後分析相關搜索,存入網址庫,標記為未抓取。
3、重復2直到指定深度(一般熱門關鍵詞6層左右深度差不多全部讀取,一般關鍵詞4層即可,理論上可以無限層,但需要抓取的數據量呈級數增長,相關性也越來越差,沒必要)。
4、人工處理長尾詞,這裡需要人工去除一些無關的關鍵詞,保留合適的(當前搜素引擎的語義處理能力還很弱)。
至此,基本完成了對長尾關鍵詞的處理,可以獲得一個比較全的長尾關鍵詞列表了。由於個人還需要研究不同層次關鍵詞之間的關系,所以存儲了搜索結果的網頁,定義了父子關系,也沒有過濾不同層之間相同的關鍵詞,這些對找長尾詞用處不大。
自動獲取文件指定目標關鍵詞的php實現見附件:spider_keywords
這是我自用程序,提供一個實現方式,打算用的話還需要根據自己使用環境修改,要求懂php,SQL。關鍵部分如相關關鍵詞分析提取已經做的比較穩定,請放心使用。其中:
mykeyword.dat為存放關鍵詞的文件,每行一個主關鍵詞。
$depth為抓取深度,默認5層,對於一般關鍵詞夠深。
程序挖掘數據後存放在我的PostgreSQL數據庫,數據庫默認UTF-8編碼,可以根據自己的實際需要修改。數據表結構如下:
– Table: mykeywords
– DROP TABLE mykeywords;
CREATE TABLE mykeywords
(id serial NOT NULL,
father text,
"content" text,
sons text,
depth text,
keyname text,
remark text,
is_spidered boolean,
CONSTRAINT mykeywords_pkey PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
ALTER TABLE mykeywords OWNER TO postgres;