数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置
分类: Python/Ruby
为了一个特定的目的,我需要爬取Google的搜索数,和其他情况不同:人家是特定关键词,一页一页地爬结果;我的是N多关键词,一次一个地搜索,只需要返回的搜索条数。事实上,一共有153个关键词,但每个关键词都需要和所有关键词握手组配成一对待检词组。于是,大家可以试想一下,一个153行、153列的大表格,每一个空白都等着填,这就将是153*153=23409次,也就是约23409/2=11704次,经测试每爬取一个共词页面的结果并存入Excel,需要花费4秒的时间。这意味着,以单人单线程的方式需要11704*4/3600=13个小时,才能跑完。
这些内容我还会在后续博文中详述,现在先介绍上述目的情境下我使用的技术框架及其安装配置过程。
一、技术架构
[Python2.7 + Pip + Selenium + Phantomjs]
Selenium+Phantomjs,最初这对兄弟不是一家的,后来发现二者志趣相投、互有好感,于是结拜为兄弟,住进了Selenium家里。(这种说法有待商榷)
看看介绍:
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Chrome等。
Phantom JS是一个服务器端的 JavaScript API 的 WebKit。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。
二、环境搭建
(1)安装Python从略,我用的版本是2.7.4(WinXP和Win7的32位平台)。
(2)由于发现Pip比easy_install优秀,我便使用我已经安装的easy_install来安装pip。
- easy_install pip
如图所示:
(3)安装Phantomjs。
到Phantomjs的官方网站http://phantomjs.org/download.html,下载“Download phantomjs-1.9.0-windows.zip (7.1 MB) ”。随后打开这个压缩包,将phantomjs.exe这一个文件解压到系统路径所能找到的地方,由于之前我已经将“C:\Python27\Scripts”目录添加入PATH之中,所以我就直接解压到这个目录。如图所示:
至此,就已经在Win的环境下配置好了环境。
三、测试
随意新建一个文件,并加入如下代码:
- from selenium import webdriver
- driver = webdriver.PhantomJS()
- driver.get('www.baidu.com')
- data = driver.find_element_by_id('cp').text
- print data
Check Out,看看是不是这个结果:
其实,我一直不喜欢弹出来的DOS黑框,觉得这东东太影响视觉而且可能更耗时,但是在我看了官方DOC后:
我发现,是不能直接藏匿DOS弹框的。So,只好这般啦。
OK,it's time to "Enjoy yourself"......
也请参看下文:《数据抓取的艺术(二):数据抓取程序优化及抓取Google之心得》
最新文章
- Netty 异步的、事件驱动的网络应用程序框架和工具
- hdu 1272 小希的迷宫
- Codeforces Round #247 (Div. 2) B - Shower Line
- SharePoint 2013 创建web应用程序报错";This page can’t be displayed";
- flatbuffers 使用问题记录
- PHP框架 Laravel Eloquent ORM 批量插入数据 &;&; 批量更新目前没有
- Codeforces Round #223 (Div. 2) C
- transparent 的新问题
- LA 4636 (贪心) Cubist Artwok
- apache开源项目-- OODT
- bzoj1922
- Cracking the coding interview--Q1.5
- MySQL 存储过程和函数(转)
- bzoj1298题解
- PAT 乙级 1074 宇宙无敌加法器 (20 分)
- tensorflow,model,object_detection,训练loss先下降后递增,到几百万,解决tensorflow,model,object,detection,loss,incease
- ubuntu14.04安装Anaconda
- L2-025. 分而治之
- Anaconda 安装、使用
- linux 卸载数据库