以百度为例,思路如下:
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;
AADBGRTHRTH