【牛佬网】关键词云拓展开发简介

关键词云拓展的功能的思路比较清晰简洁,但实现起来稍微复杂了一些。

主要的目的是根据主关键词,采集百度下拉的第一层相关关键词,以第一层的高相关度源词为索引,递交到百度竞价推广数据接口,采集到百度后台的相关关键词和自带的索引量。

为了提取百度竞价关键词;首先测试php采集神器curl,递交一个网址爬取全部源码,不过无法解析js,对于百度竞价的强大的js+ajax调用 实在是无能为力; 也尝试了下一个谷歌的开源项目php-js-ext,(项目主页:http://aurore.net/projects/php-js/),php-js-ext是mozilla javascript解释器和php之间的一座桥梁,php利用mozilla javascript解释器将数据解析出来,依然搞不定百度竞价后台。

牛佬也试验了node.js 理想中对javascript的支持比较好吧,不过node的通讯机制还是偏弱 稳定性没有那么好 而且 效率比较低下 占用内存比较多 就没有深入研究,最终牛佬采用了一款适合的工具:那就是传说中的python+scrapy 。如果说用php自己写的 spider是小米加步枪,那Scrapy简直就是重工加农炮,好用到不行!自定义爬取规则,http错误处理,XPath,RPC,Pipeline机制等等等。

而且,由于Scrapy是基于Twisted异步实现的,所以同时兼顾有非常好的效率,而且可以做分布式抓取。再加上 pyQuery,pyQuery是 jQuery 在 python 中的实现,能够以 jQuery 的语法来操作解析 HTML 文档,十分方便;偶尔会发现代码规范的问题话

比如 

或者缺

结尾的时候

可以再配合 BeautifulSoup; 就可以将代码完美的解析出来。

但是对于页面js的解析还需要一款可用的js运行环境才行,谷歌了很久 才找到pyv8这个东东; PyV8 是Google V8 引擎的 Python 语言封装,这是 Python 和 JavaScript 对象之间的桥,支持在 Python 脚本中调用 V8 引擎。
pyv8
总结:利用 python+scrapy 爬取竞价页面源码 pyv8解析js并生成最终页面 然后使用pyQuery提取结果;当然 我更喜欢使用BS(beautiful soap缩写)来解析提取
【牛佬网】http://dwz.cn/20L6wr

发表评论

电子邮件地址不会被公开。