网络爬虫项目开发日志(三):爬虫上线准备

原创 2016年08月28日 17:48:44

经过这段时间的开发,尽管路途不顺畅,但我们还是顺利的上线了爬虫项目的初版,上线的过程也是一波三折,特总结如下:


1、技术选型千万要慎重,尤其是在第三方框架的跨平台支持性上需要做好充分的评估,开发人员当初只是在windows平台做的开发,没有在linux平台

上验证同样一个技术的可用性,导致到了上线前忍痛割爱,换备选技术方案。

      例如:我们在开发阶段,开发哥哥选用谷歌的chrome webdriver来处理被下载网页的渲染,当初在windows平台上运作很正常,可到了上集成环境

的时候,发现chrome webdirver的linux安装包无法安装,因为该工具包所依赖的底层glibc、glibc++和我们服务器的cent OS 6.X所提供的相关lib版本

不一致,导致必须升级glibc、glibc++,升级glibc可不是一件轻松的事情,需要升级gcc,有着一系列的复杂shell操作,最后,经过评估,我们决定换

firefox webdriver取而代之,firefox的好处在于无需要另外安装webdriver驱动包,只需要安装火狐浏览器即可,OK,我们安装好浏览器后,系统跑起

来又报错了:NO Display Specified×××,啥意思,就是centOS未安装桌面组建,没有一个对屏幕显示的支持机制,如果要打开firefox浏览器,必须要

安装一个虚拟屏幕的程序来支持,这时候,xvfb站出来了,安装好xvfb,分配一个虚拟的屏幕号,启动firefox,搞定!


2、对于相对成熟的技术,也需要上linux平台上去根据实际线上部署请款模拟一遍真实的服务器之间的数据交互,而不是停留在想当然。

    例如:我们的消息层是基于redis来开发的,当时开发的时候,消息的订阅和发布其实都是在本机进行的,整个的消息传输处理的流程都能够测试通

过,但是,到了生产环境后,消息的发布和订阅是由两台服务器分别来进行,当其中一台服务器订阅了另外一台服务器的消息主题后,发现connect

refused,我们检查了网络权限,发现Ip、port在tcp层面的传输都没有问题,那是咋回事呢,后经查实,这是redis的安全事物处理机制,如果一台服务

器需要访问另外一台服务器的redis服务的时候,必须要通过密码校验来鉴权,后来设置服务器密码后,搞定!


3、充分评价系统的复杂度,尽早考虑将系统相关静态信息配置化,否则当系统需要平滑迁移时,书手术脚。

   例如:我们在临上线前一周,领导要求,所有和外网的交互都要经过一个网关系统,大的架构上没有问题,但对我们爬虫系统来说,无异于伤筋动骨

了,1、我们所有的httpclient中的外网种子Url都是写死在代码中的,如果要过网关系统,意味着必须把所有的种子Url都切换为网管Url,而且还要修改

相关的参数。2、我们页面解析中的也有很多针对域名的的操作,有写死在代码中的,有通过正则表达式来说明的等等,这些改动点如果细细想来,也

够我们吃一壶的。3、一个爬虫任务本身三有着各种属性来定义此任务模型的,有种子Url、爬取层数、任务开关、爬取频率、重试次数、重试间隔时间

、等等,如果外部业务有变动的话,在无配置的情况下,爬虫无法很灵活的跟着变动。


因为系统刚刚上线,肯定还有不少坑,但每填一个坑,我就会更开心一点,因为爬虫更强大了一点。



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

网络爬虫项目开发日志(五): 爬虫协议初探

--前言-- 常在河边走,哪有不湿鞋 有的时候,网络爬取就像串门一样,如果守规矩的话,是需要先打个电话给主人预约一下,或是进门的时候先敲门看看主人是否在家,如果主人允许咱进去,咱再进去,进去后,也...

网络爬虫项目开发日志(七): 基于MD5去重树的爬虫设计与优化

--注-- 本文仅做研究交流用,非工业化标准,各位大神不喜勿喷哈 --引言-- 爬虫系统在面对海量网页数据时,会因为DNS解析以及URL去重而消耗大量的时间,为了更好的改进爬虫的效率,让爬虫在大...

网络爬虫项目开发日志(一):关于爬虫项目所涉及的领域知识

最近,公司刚刚开启了网络爬虫项目,对于这一陌生领域,我是好奇又惶恐,为了记录爬虫项目开发过程中的点滴,特立此系列微薄。 项目已经开启2个月,经过2个月的摸爬滚打,初步总结出了爬虫所涉及的知识领域,...

网络爬虫项目开发日志(二):爬虫架构设计

网络爬虫项目开发日志(二):爬虫架构设计 本系列的文章纯粹是闲暇中我用来记录开发过程中的点滴,用作以后消遣用的,大神们不喜勿喷

网络爬虫项目开发日志(六): 基于余弦向量法的Web数据并行爬取

--前言-- 随着项目的不断进展,爬虫项目所需要爬取的数据种类越来越多,爬取的体量也越来越大,而且更新频率也更快,单机爬取机制肯定是不适用了,日前,偶然从学术领域得知了基于余弦向量法的多机并发爬取策...

网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用

最近被网络爬虫中的去重策略所困扰。使用一些其他的“理想”的去重策略,不过在运行过程中总是会不太听话。不过当我发现了BloomFilter这个东西的时候,的确,这里是我目前找到的最靠谱的一种方法。

网络爬虫项目开发日志(四):接口篇

一、接口安全 问题1. 接口暴露用户隐私信息就相当于在光天化日下裸奔,被看光了 描述:程序猿在做业务接口的时候往往没有保护用户隐私的意识,把用户的隐私信息暴露在外面,一旦被人利用起来会给用户带来...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)