- 浏览: 564799 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 786原文地址:http://www.techo ... -
241个jquery插件—jquery插件大全
2014-12-09 10:26 801原文地址:http://blog.csdn.net/adsda ... -
前端ui的js框架
2014-09-04 16:45 592原文地址:http://www.quickui.net/v3/ ... -
2014 年最火的21个JavaScript框架
2014-09-03 17:25 477原文地址:http://www.iteye.com/news/ ... -
Bootstrap 栅格系统
2014-08-08 15:53 517原文地址:http://www.cnblogs.com/lin ... -
自定义Bootstrap
2014-08-08 10:14 685原文地址:http://www.w3cplus.com/css ... -
使用python/casperjs编写终极爬虫-客户端App的抓取
2014-08-06 18:09 9531.缘起 随着移动互 ... -
使用Selenium和PhantomJS解析带JS的网页
2014-08-06 17:57 1047有的网页,不能直接通过wget/curl等命令、或者直接使用P ... -
ubuntu12.04 下安装nodejs【整理】
2014-06-12 14:38 731ubuntu12.04 下安装nodejs【整理】 作者:杭州 ... -
Ubuntu安装nodeJS
2014-06-12 14:38 512Ubuntu安装nodeJS 安装环境 ubuntu12. ... -
纯js页面跳转整理
2014-05-20 18:06 525纯js页面跳转整理 js页面跳转 js方式的页面跳转 1. ... -
细说Cookie
2013-09-29 15:14 648细说Cookie 阅读目录 开始 ... -
JavaScript Source Map 详解
2013-08-30 09:49 808JavaScript Source Map 详解 ... -
9 个超实用的 jQuery 代码片段
2013-07-15 14:49 761jQuery以其强大的功能和简单的使用成为了前端开发者最喜欢 ... -
前端工具导航
2013-07-11 14:36 1004http://f2e.im/static/pages/nav ... -
主题:50个令人惊奇的jQuery插件
2013-05-29 18:17 988jQuery拥有强大的有创造性的程序员群体。 然而,它很难通 ... -
jquery触发事件
2013-05-23 17:25 610Snandy Stop, thinking is th ... -
jquery事件命名空间
2013-05-23 17:13 517JQUERY事件命名空间 2012 ... -
jQuery的事件命名空间-Namespaced Events
2013-05-23 17:12 631jQuery的事件命名空间-Namespaced Event ... -
JQuery自定义事件的应用 JQuery最佳实践
2013-05-23 16:54 799本文主要介绍JQuery框架里面支持的自定义事件模型,通过实 ...
相关推荐
以下是使用C#和Selenium+PhantomJS抓取数据的步骤: 1. **环境准备**: - 打开Visual Studio 2017,创建一个新的控制台应用程序项目。 - 在项目中,通过NuGet包管理器安装`Selenium.WebDriver`。如果需要通过代理...
在IT行业中,自动化测试和网页数据抓取是两个重要的领域,而Selenium、PhantomJS以及Python在这两个领域中都扮演着关键角色。本话题主要关注如何利用Selenium结合PhantomJS通过Python来获取HTML动态生成的数据。 ...
结合Selenium和PhantomJS,我们可以实现对任意网站的模拟登录,这对于自动化测试、数据抓取或者日常的自动化任务都有极大的帮助。同时,这也是一个学习网页自动化、前端交互的好案例。通过实践这个项目,可以深入...
本文将深入探讨一种高级网络爬虫系统的构建方法,该系统利用C#.NET作为主要开发语言,结合PhantomJS和Selenium工具,实现了高效、稳定且功能强大的网页数据抓取能力。该系统特别适用于那些需要模拟浏览器行为、处理...
在IT行业中,自动化测试和网页...总的来说,Selenium和PhantomJS结合为开发者提供了一种强大且灵活的方式来自动化Web操作,尤其在测试和数据抓取领域。理解并掌握这一技术,对于提升工作效率和解决问题具有重要意义。
总结,"taobaospider"项目利用Selenium和PhantomJS的组合,实现了对淘宝商品信息的有效抓取,Pyquery简化了数据解析,而MongoDB提供了可靠的数据存储。整个流程展示了Python在Web爬虫领域的强大能力,以及与前端自动...
但是设计javascript渲染的页面却不能抓取,此 时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面,下面实现一个简单的爬取
5. **安装与配置**:在开始项目之前,需要确保Python3环境已经搭建好,并通过pip安装selenium和phantomjs。由于phantomjs不再维护,可能需要从源码编译或寻找替代方案,如使用headless Chrome或Firefox。 6. **代码...
在IT领域,模拟登录是一项常见的任务,特别是在自动化测试、数据抓取或数据分析中。本项目利用Selenium和PhantomJS工具实现了对多个知名网站(微博、知乎、QQ空间、CSDN、京东、163邮箱、百度)的模拟登录功能。下面...
总体而言,使用Python结合Selenium和PhantomJS进行网络爬虫开发,为数据抓取提供了一种强大的解决方案。它不仅能够抓取那些难以通过传统爬虫技术获得的动态内容,还可以灵活应对各种复杂的网络环境和内容加载机制。
开发者可能在这里编写了启动Selenium、配置PhantomJS、初始化AngleSharp解析器、发送网络请求、解析网页和提取数据的主要代码。 总结起来,这个项目展示了如何利用C#、AngleSharp和Selenium PhantomJS来处理动态...
`Crystal` 是一个利用Python编程语言构建的爬虫程序,它巧妙地结合了Scrapy、Selenium和PhantomJS这三个强大的工具,专门用于抓取多所学校的学术报告信息。这个项目展示了如何在面对动态加载、需要用户交互的网页时...
在没有界面的环境下,我们可以借助**PhantomJS**,一个基于Webkit的无头浏览器,它可以在后台运行,非常适合进行网页抓取。 要使用Selenium与PhantomJS,首先需要安装它们。在命令行中运行以下命令: ``` pip ...
PhantomJS是一个无头浏览器,它允许开发者在没有图形用户界面的情况下运行JavaScript,这对于自动化任务,如网页抓取和登录验证非常有用。Python3则作为后端控制程序,编写逻辑来驱动PhantomJS执行相应的操作。 ...
在本项目实践中,我们探索了如何使用C#.NET框架结合PhantomJS和Selenium构建一个高级的网络爬虫程序,该程序能够处理JavaScript渲染的网页并执行JavaScript代码,从而更全面地获取网络数据。以下是对这个项目的详细...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...