实战Python网络爬虫
上QQ阅读APP看书,第一时间看更新

1.5 爬虫的合法性与开发流程

网络爬虫在大多数情况下都不会违法,在生活中几乎都有爬虫应用,比如在百度中搜索的内容几乎都是通过爬虫采集下来的,因此网络爬虫作为一门技术,技术本身是不违法的,且在大多数情况下可以放心使用爬虫技术。当然也有特殊情况,正如水果刀本身在法律上并不被禁止使用,但是用来伤害他人,这就触犯了法律规则。一般情况下,爬虫所带来的违法风险主要体现在以下几个方面:

(1)利用爬虫技术与黑客技术结合,攻击网站后台,从而窃取后台数据。因为爬虫是爬取网站上的网页信息,这些信息能给用户浏览,也就是说这些信息允许我们使用和爬取。但网站的后台数据是不被公开的数据,这些数据涉及了用户的隐私和财产安全,如果通过爬虫技术与黑客技术窃取后台数据,这就明显触发法律的底线。

(2)利用爬虫恶意攻击网站,造成网站系统的瘫痪。爬虫是通过程序去访问并操控网站,因此访问速度非常快,再加上程序的高并发处理,可以在短时间内模拟成千上万的用户在访问网站。当网站的访问量过高,就会加重网站的负载,从而造成系统的瘫痪,如果长期这样恶意攻击网站系统,也很可能违反相关的法律条例。

综上所述,爬虫技术本身是无罪的,问题往往出在人的无限欲望上。因此爬虫开发者和企业经营者的道德良知才是避免触碰法律底线的根本所在。

既然爬虫技术是合法的,那么,我们有必要了解一下爬虫的开发流程。只有掌握开发流程,才能编写高质的爬虫程序,这好比盖房子一样,建筑施工人员需要根据房屋设计图才能搭建房子,而房屋设计图等同于爬虫的开发流程。一般情况下,爬虫的开发流程如下:

(1)需求说明。任何程序开发都离不开需求说明,爬虫开发也是如此。需求说明包含功能说明、功能的业务逻辑等详细说明。爬虫的需求说明要明确告知开发人员需要爬取哪些数据、数据的存储方式以及爬虫的爬取效率。

(2)爬虫开发计划。根据爬虫的需求说明制定相关的开发计划,比如选择爬虫的开发工具、功能模块化设计、设计爬虫运行模式等一系列开发明细。

(3)爬虫的功能开发。根据开发计划编写相应的功能代码。以功能模块化设计为依据,每个功能模块以函数或类的形式表示,再将各个模块进行组合,从而实现整个爬虫功能的开发。

(4)爬虫的部署与交付。程序开发完成后(包含测试通过)就可以进行部署上线或交付客户。部署和交付的方式有多种,比如打包exe程序、GUI界面(爬虫软件)或定时执行等。

上述的爬虫开发流程是相对而言的,每一个开发步骤并非一成不变的,具体的开发流程还需要结合实际情况而定。