现在的互联网来说,包含着各种海量的信息,无孔不入,包罗万象。出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣、有价值的内容,我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。让我们说的稍微好听一点,网络爬虫就是按照一定的规则,自动地抓取万维网信息的程序或者脚本,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。
最近Python的风刮的很大,才知道爬虫技术在我们生活中已经被应用的这么广泛,从出行抢票、社交评论点赞、不同电商平台的产品价格比较、搜索引擎网页排名,到个人信用信息获取灯,爬虫就像是我们的分身,可以帮助我们去做原本要做成千上万次的工作;但是爬虫作为技术本来就是双刃剑,所以也会有反爬虫技术,关键在于如何去正确地规范地使用这项技术。
爬虫技术服务器配置最低要求
实验室用的爬虫和搜索引擎的服务器不能低于 4核心~8核心的,内存越大越好。另外爬虫对于网络的要求也是很高的,因为读取数据需要大的宽带才能更快的完成单项任务
因为爬虫和搜索引擎对CPU计算能力要求高,对内存的存储能力要求大。
爬虫小知识
1.大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可以让我们获取更多的数据源,并且这些数据源可以按我们的目的进行采集,去掉很多无关数据。
2. 有什么作用?
通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的数据支撑,加快产品发展。
3. 业界的情况
目前互联网产品竞争激烈,业界大部分都会使用爬虫技术对竞品产品的数据进行挖掘、采集、大数据分析,这是必备手段,并且很多公司都设立了爬虫工程师的岗位
4. 合法性
爬虫是利用程序进行批量爬取网页上的公开信息,也就是前端显示的数据信息。因为信息是完全公开的,所以是合法的。其实就像浏览器一样,浏览器解析响应内容并渲染为页面,而爬虫解析响应内容采集想要的数据进行存储。
5. 反爬虫
爬虫很难完全的制止,道高一尺魔高一丈,这是一场没有硝烟的战争,码农VS码农
反爬虫一些手段:
合法检测:请求校验(useragent,referer,接口加签名,等)
投毒:反爬虫高境界可以不用拦截,拦截是一时的,投毒返回虚假数据,可以误导竞品决策
在爬取某个网站的时候,同时开启了64个进程,并且是异步的方法,下载速度稳定在700k左右,因为公司运维给网络限速了,不可能提高网速了,然后是内存消耗是87%,内存是12G,CPU消耗是百分之百,CPU消耗为何这么高呢?主要是数据解析需要消耗CPU和进程切换也需要消耗CPU。一个网页的大小应该在10k到20k之间,粗略统计一下,一分钟能下载1750个网页,包括数据的下载,解析和入库整个过程。这个下载速度是1750*60分钟 等于105000,也就是说一个小时是能下载十万个网页。
这个速度怎么样?我觉得这个下载速度是非常的慢,为何,因为这个网址他封ip了,需要通过代理去访问他们的服务器,这也是非常耗时的一个过程,只能通过ip池去解决,ip池里面维护了1000左右有效ip,并且有专门的服务去做验证,可以随时抽取一个ip去抓取目标网站。理想的状态是一分钟抓取3000条数据,一天24小时抓取500万左右个网页数据。
小伙伴是不是很惊讶?网络百分之九十的流量都是爬虫给贡献的,爬虫给目标网站造成了不小的压力,为了避免给目标网站造成破坏,不建议开启过多的并发。