- 浏览: 547344 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址:http://blog.chinaunix.net/uid-22414998-id-3692113.html
数据抓取是一门艺术,和其他软件不同,世界上不存在完美的、一致的、通用的抓取工具。为了不同的目的,需要定制不同的代码。不过,我们不必Start from Scratch,已经有许多的基本工具、基本方法和基础框架可供使用。不同的工具、不同的方法、不同的框架的特点也不同。了解这些工具、方法和框架是首要任务,接下来就需要明白它们的差异都在哪里、什么情境该用什么东东,最后才是析出规则、编写代码、运行程序来抓取数据。所以说,其实数据抓取的学习路线,不但很长而且很杂。
为了一个特定的目的,我需要爬取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之心得》
数据抓取是一门艺术,和其他软件不同,世界上不存在完美的、一致的、通用的抓取工具。为了不同的目的,需要定制不同的代码。不过,我们不必Start from Scratch,已经有许多的基本工具、基本方法和基础框架可供使用。不同的工具、不同的方法、不同的框架的特点也不同。了解这些工具、方法和框架是首要任务,接下来就需要明白它们的差异都在哪里、什么情境该用什么东东,最后才是析出规则、编写代码、运行程序来抓取数据。所以说,其实数据抓取的学习路线,不但很长而且很杂。
为了一个特定的目的,我需要爬取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之心得》
发表评论
-
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2014-12-09 10:33 756原文地址:http://www.techo ... -
241个jquery插件—jquery插件大全
2014-12-09 10:26 775原文地址:http://blog.csdn.net/adsda ... -
前端ui的js框架
2014-09-04 16:45 565原文地址:http://www.quickui.net/v3/ ... -
2014 年最火的21个JavaScript框架
2014-09-03 17:25 454原文地址:http://www.iteye.com/news/ ... -
Bootstrap 栅格系统
2014-08-08 15:53 495原文地址:http://www.cnblogs.com/lin ... -
自定义Bootstrap
2014-08-08 10:14 665原文地址:http://www.w3cplus.com/css ... -
使用python/casperjs编写终极爬虫-客户端App的抓取
2014-08-06 18:09 9301.缘起 随着移动互 ... -
使用Selenium和PhantomJS解析带JS的网页
2014-08-06 17:57 1021有的网页,不能直接通过wget/curl等命令、或者直接使用P ... -
ubuntu12.04 下安装nodejs【整理】
2014-06-12 14:38 692ubuntu12.04 下安装nodejs【整理】 作者:杭州 ... -
Ubuntu安装nodeJS
2014-06-12 14:38 482Ubuntu安装nodeJS 安装环境 ubuntu12. ... -
纯js页面跳转整理
2014-05-20 18:06 498纯js页面跳转整理 js页面跳转 js方式的页面跳转 1. ... -
细说Cookie
2013-09-29 15:14 627细说Cookie 阅读目录 开始 ... -
JavaScript Source Map 详解
2013-08-30 09:49 776JavaScript Source Map 详解 ... -
9 个超实用的 jQuery 代码片段
2013-07-15 14:49 735jQuery以其强大的功能和简单的使用成为了前端开发者最喜欢 ... -
前端工具导航
2013-07-11 14:36 968http://f2e.im/static/pages/nav ... -
主题:50个令人惊奇的jQuery插件
2013-05-29 18:17 964jQuery拥有强大的有创造性的程序员群体。 然而,它很难通 ... -
jquery触发事件
2013-05-23 17:25 582Snandy Stop, thinking is th ... -
jquery事件命名空间
2013-05-23 17:13 484JQUERY事件命名空间 2012 ... -
jQuery的事件命名空间-Namespaced Events
2013-05-23 17:12 608jQuery的事件命名空间-Namespaced Event ... -
JQuery自定义事件的应用 JQuery最佳实践
2013-05-23 16:54 760本文主要介绍JQuery框架里面支持的自定义事件模型,通过实 ...
相关推荐
本文主要介绍了C#使用Selenium+PhantomJS抓取数据的方法步骤,具有很好的参考价值,下面跟着小编一起来看下吧
但是设计javascript渲染的页面却不能抓取,此 时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面,下面实现一个简单的爬取
主要介绍了Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Crystal 一个基于scrapy+selenium+phantomjs的爬虫程序,用于抓取多个学校的学术报告信息
使用c#对京东搜索页进行价格,名称爬取,使用AngleSharp+Selenium.PhantomJS
使用python写爬虫时,优选selenium,由于PhantomJS因内部原因已经停止更新,最新版的selenium已经使用headless chrome替换掉了PhantomJS,所以建议将selenium更新到最新版,使用selenium + headless chrome ...
phone_scrapy.py: 它使用PhantomJS或Chrome浏览器使用百度抓取电话号码信息。 baidu_image_spider.py: 它使用Selenium从百度图像网页自动下载图像。 auto_upload_file.py: 它使用Selenium和AutoIt将您的计算机...
其中包括selenium最新的dll文件与phantomjs的exe文件
自己制作了一个爬虫思维导图,涵盖了从零开始,爬虫概念,urblib.request,request,scrapy,分布式scrapy-Redis,强大组合工具selenium+phantomjs/Chrome/Firefox等等,以及最后的机器视觉与移动端APP的抓取,并且是...
利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地。 注意点 搜狗微信获取的地址为临时链接,具有时效性。 公众号为动态网页(JavaScript渲染),使用requests.get()获取的内容是不含推送消息...
网页搜罗:Selenium PhantomJS 测试:邮递员 部署:/ 地位 进行中 任务 设置.NET环境 设置API路由 刮JavaScript HTML 提供基本登录 代管 如何使用 API URL是https://localhost:44315/api/scrape 获取请求: ...
因为最近要写一个抓取sitemap和相应的参数的小脚本,现有的爬虫无论用什么语言写的,几乎都无法抓取参数,所以我思考了一下,先做一个简单的总结。 本来以为写个这种sitemap的爬虫很简单,经过思考之后才发现其中的...
Kimurai是一个用Ruby编写的现代Web抓取框架,可以与Headless Chromium / Firefox,PhantomJS或简单的HTTP请求一起使用,可以直接进行抓取并与JavaScript呈现的网站进行交互。 Kimurai基于著名的和宝石,因此您无需...
一种方式是直接模拟浏览器解析JS 本程序采用第二种方式,利用Selenium浏览器测试框架,实现了一个可以解析页面JS的 web 网络爬虫,从而可以抓取动态网页信息。 2、新手教程 driver 目录(存放的是selenium需要运行的...
内含火狐驱动,和phantomjs无壳浏览器,针对现新浪微博的登录界面有用
如何运行: python email_scrape.py domain-name外部依赖关系: Selenium( sudo pip install selenium ) BeautifulSoup4( sudo pip install BeautifulSoup4 ) 安装 安装PhantomJS: npm -g install phantomjs请...
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 此处使用了selenium插件 使用的是火狐浏览器 信息存储到csv表格里面...