分布式爬虫原理与实现
文章平均质量分 87
爬虫是我们获取互联网数据的一个非常有效的方法,而分布式爬虫则可大大加快抓取数据效率。这里使用了实验室高效简洁的PyHusky来设计分布式框架,不仅可以爬取常见的静态类网站,同时由于加入了selenium和Phantomjs,也可实现分布式获取动态渲染生成的网页内容。
happen_chen
这个作者很懒,什么都没留下…
展开
-
Husky中文文档-PyHusky 架构
PyHusky Architecture本节介绍husky的架构,其中包括前端和后端。PyHusky 前端在PyHusky前端,几乎所有的运算符如map,flat_map和reduce 等都属于DAG的节点,定义了对PyHuskyList中objects的转换。例如, b = a.map(func) 将从PyHuskyList a 返回一个新的PyHuskyList b翻译 2017-02-22 13:29:50 · 17377 阅读 · 2 评论 -
PyHusky快速开始
快速开始构建本节假设Husky已经被成功部署。若Husky还未被部署于集群之上,请参照Husky中文文档-部署.编译Daemon后端应用程序.PyHusky需要编译Maser和Daemon。在构建目录,使用 make Master 编译Master 和 make Daemon 编译Daemon。需确保构建目录已经被cmake正确创建。启动翻译 2017-02-22 12:26:27 · 16609 阅读 · 3 评论 -
PyHusky接口功能及实例介绍
这里假设已经在集群上成功部署了Husky并且已为PyHusky编译成功所需的后端运用程序Master和Daemon。假如情况不是这样,可以参考PyHusky快速开始。#首先启动Master:./Master conf/myhusky.conf #在另一个窗口,if配置文件myhusky.conf指向单机环境,则如下启动单机Daemon:./Daemon conf/myhusky.conf原创 2017-02-23 11:56:20 · 22891 阅读 · 3 评论 -
Python分布式爬虫前菜(1):关于静态动态网页内容获取的N种方法
爬虫是快速获取我们需要的数据的一个有效途径,而第一步便是要请求远方服务器为我们返回对应的网页信息。我们知道,正常情况下在浏览器上我们只要输入正确的统一资源定位器url,即网页地址便可轻松打开我们想要看到页面。同理,在设计python爬虫程序时,我们也可以调用对应的库通过参数设置来连接网络处理http协议。原创 2017-03-02 23:47:57 · 18488 阅读 · 3 评论 -
Python分布式爬虫前菜(2):关于提取网页源码中特定信息的技巧
前面介绍了不同方法来获取静态和动态各类网页源码,可是我们知道网页源码是夹杂着文字和代码的让人非常眼花缭乱的信息。如何从中提取出有用的信息是一次有意义的爬虫过程中不可避免的问题。这里我们需要快速简洁的工具帮我们完成,其中就有re,BeautifulSoup和XPath等优秀代表。闲话不说,直接进入主题:(一)re(regular expression operations),即我们常说的正则表达原创 2017-03-06 16:07:34 · 15549 阅读 · 3 评论 -
基于PyHusky的分布式爬虫原理及实现
原理爬虫是我们获取互联网数据的一个非常有效的方法,而分布式爬虫则是利用许多台机器协调工作来加快抓取数据效率的不二途径。分布式爬虫是由访问某些原始网址开始,在获取这些网址的内容后,根据某些规则从中提取出下一轮的爬虫网址。依此类推,直到将全部链接访问完毕或达到我们设置的某些限定方可结束。这里我们需要选定一个运算效率较高的机器作为master, 和一群正常的workers来协助。这个master要负原创 2017-04-06 17:14:01 · 31975 阅读 · 3 评论 -
分布式网络爬虫实例——获取静态数据和动态数据
前言刚刚介绍完基于PyHusky的分布式爬虫原理及实现,让我们具备了设计分布式网络爬虫方便地调动计算资源来实现高效率的数据获取能力。可以说,有了前面的基础,已经能够解决互联网上的绝大部分网站的数据获取问题。下面我将以正常模式爬取某地产网站上相关的新房、二手房和租房信息;然后使用selenium来抓取动态数据来分别介绍两种类型网站的分布式网络爬虫的实现:实例由于前面已经设计好了实现分布式爬虫的框架,它原创 2017-04-11 14:51:10 · 17103 阅读 · 2 评论