1. 爬虫和数据分析那个好
所谓爬虫就是编写代码从网页上爬取自己想要的数据,代码的质量决定了你能否精确的爬取想要得到的数据,得到数据后能否直观正确的分析。
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
两者都各自有自己长处,但是爬虫开始,可以感觉到轻松爬取数据的快乐,但后面会发现,爬取数据仅仅只是第一步,对数据进行分析才是重点。目前Python数据分析师正处于需求量大,人才供不应求的阶段,薪资也很可观。
![爬虫和数据分析那个好](https://tse-mm.bing.com/th?q=%E7%88%AC%E8%99%AB%E5%92%8C%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E9%82%A3%E4%B8%AA%E5%A5%BD)
2. 常见的分布式网络爬虫架构有什么?
Python很适合做爬虫,丰富的第三方库十分强大,几行代码便可实现你想要的功能,常用的架构有以下几个:
1、Scrapy
提取结构性数据而编写的应用框架Scrapy。 主要应用在数据挖掘,信息处理、存储历史数据等程序。
2、Beautiful Soup(bs4)
可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档。
3、selenium
自动化测试工具Selenium,它支持各种浏览器,包括 Chrome,Safari,Firefox等主流浏览器。
4、Portia
可视化爬虫工具Portia,基于scrapy内核,可视化爬取内容。
5、cola
分布式的爬虫框架cola,任务会自动分配到多台机器上。
6、PySpider
纯国产框架PySpider
3. 关于分布式爬虫的问题
布式网络爬虫的整体设计重点应该在于爬虫如何进行通信。目前分布式网络爬虫按通信方式不同分布式网路爬虫可以分为主从模式、自治模式与混合模式三种。
主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个过程中不必与其他爬虫通信,这种方式实现简单利于管理。而控制节点则需要与所有爬虫进行通信,它需要一个地址列表来保存系统中所有爬虫的信息。当系统中的爬虫数量发生变化时,协调者需要更新地址列表里的数据,这一过程对于系统中的爬虫是透明的。但是随着爬虫网页数量的增加。控制节点会成为整个系统的瓶颈而导致整个分布式网络爬虫系统性能下降。
![关于分布式爬虫的问题](https://tse-mm.bing.com/th?q=%E5%85%B3%E4%BA%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%88%AC%E8%99%AB%E7%9A%84%E9%97%AE%E9%A2%98)
4. 如何设计一个复杂的分布式爬虫系统
!
一个复杂的分布式爬虫系统由很多的模块组成,每个模块是一个独立的服务(SOA架构),所有的服务都注册到Zookeeper来统一管理和便于线上扩展。模块之间通过thrift(或是protobuf,或是soup,或是json,等)协议来交互和通讯。
Zookeeper负责管理系统中的所有服务,简单的配置信息的同步,同一服务的不同拷贝之间的负载均衡。它还有一个好处是可以实现服务模块的热插拔。
URLManager是爬虫系统的核心。负责URL的重要性排序,分发,调度,任务分配。单个的爬虫完成一批URL的爬取任务之后,会找 URLManager要一批新的URL。一般来说,一个爬取任务中包含几千到一万个URL,这些URL最好是来自不同的host,这样,不会给一个 host在很短一段时间内造成高峰值。
5. 分布式爬虫要解决什么问题?
布式网络爬虫的整体设计重点应该在于爬虫如何进行通信。目前分布式网络爬虫按通信方式不同分布式网路爬虫可以分为主从模式、自治模式与混合模式三种。
主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个过程中不必与其他爬虫通信,这种方式实现简单利于管理。而控制节点则需要与所有爬虫进行通信,它需要一个地址列表来保存系统中所有爬虫的信息。当系统中的爬虫数量发生变化时,协调者需要更新地址列表里的数据,这一过程对于系统中的爬虫是透明的。但是随着爬虫网页数量的增加。控制节点会成为整个系统的瓶颈而导致整个分布式网络爬虫系统性能下降。
为什么要用分布式爬虫,大致的说,就是当你需要采集大量数据时,因为任务太多,一台机器搞不定了,这时候需要多台机器共同协作完成,最后将所有机器完成的任务汇总在一起,直到任务结束,这个过程就是分布式爬虫,为保证分布式爬虫的顺利进行,使用大量HTTP代理IP是必备的。

你可以选择自己搭建服务器来解决IP问题,这种效果一定是最好的,但弊端在于成本过高,不仅有购买服务器的花费,还要聘请专业技术定期维护,实在不适合大部分人群。而风讯代理的代理IP池租用服务可以完美解决这种IP贫乏的窘境,风讯代理拥有大量国内高质量HTTP代理IP资源,IP段无重复,支持多线程高并发使用,操作简单,收费公道,对于分布式爬虫工作者来说绝对是一个福音。
![分布式爬虫要解决什么问题?](https://tse-mm.bing.com/th?q=%E5%88%86%E5%B8%83%E5%BC%8F%E7%88%AC%E8%99%AB%E8%A6%81%E8%A7%A3%E5%86%B3%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%EF%BC%9F)