首页 > 评论 > 关键词 > 代码最新资讯 > 正文

“放下你手里的代码”:爬虫技术的善与恶、罪与罚

2019-10-29 08:42 · 稿源:苏宁财富公众号

病毒、代码 (4)

声明:本文来自于微信公众号苏宁财富资讯(ID:SuningWealthInsights),作者:   沈春泽、李加庆,授权站长之家转载发布。

“放下你手里的代码,小心被抓。”

最近程序员圈子不乏这样的戏谑调侃。

原因是最近发生的多起涉及爬虫技术的公司被司法部门调查。近日, 51 信用卡被查,更是将暴力催收背后非法使用爬虫技术爬取个人隐私数据的丑行,暴露在阳光之下。

一时间,“爬虫”成为众矢之的,一些公司紧急下架了爬虫相关的招聘信息,给大数据风控、人工智能从业者带来些许恐慌,头发又多落了几根。

实际上,大部分人都听说过爬虫,认为爬虫就是到人家网站上去爬东西、偷数据,有些人甚至认为只要有爬虫,什么数据都可以搞到。

今天,我们就打开爬虫这个“工具箱”,把涉及到的技术盲区放到灯光下,让大家可以清楚地看下。下面,本文就从这个角度来聊聊爬虫这个熟悉而又陌生的技术。

爬虫的技术原理

搜索引擎收集网上信息的主要手段就是网络爬虫(也叫网页蜘蛛、网络机器人)。它是一种“自动化浏览网络”的程序,按照一定的规则,自动抓取互联网信息,比如:网页、各类文档、图片、音频、视频等。搜索引擎通过索引技术组织这些信息,根据用户的查询,快速地提供搜索结果。

设想一下,我们平时浏览网页的时候会怎么做?

一般情况下,首先,会用浏览器打开一个网站的主页,在页面上寻找感兴趣的内容,然后点击本站或其它网站在该网页上的链接,跳转到新的网页,阅读内容,如此循环往复。如下图所示:

图中的虚线圆角矩形代表一个网站,每个实线矩形表示一个网页。可以看到,每个网站一般以首页为入口,该首页链接到几个、几万个、甚至上千万个的内部网页。同时,这些网页往往又链接了很多外部网站。例如,用户从苏宁金融的网页为起点,浏览发现了PP视频的链接,点击后跳转到了PP视频主页,作为体育爱好者,在体育频道中找到了相关的新浪微博的内容,再次点击后又来到微博的页面继续阅读,从而形成了一条路径。如果把所有的可能路径呈现出来,就会看到一个网络结构。

网络爬虫模拟了人们浏览网页的行为,只是用程序代替了人类的操作,在广度和深度上遍历网页。如果把互联网上的网页或网站理解为一个个节点,大量的网页或网站通过超链接形成网状结构。爬虫通过遍历网页上的链接,从一个节点跳转到下一个节点,就像是在一张巨大的网上爬行,但是比人类的速度更快,跳转的节点更全面,所以被形象地称为网络爬虫或网络蜘蛛。

爬虫的发展历史

网络爬虫最早的用途是服务于搜索引擎的数据收集,而现代意义上的搜索引擎的鼻祖是 1990 年由加拿大麦吉尔大学(University of McGill)学生Alan Emtage发明的的Archie。

人们使用FTP服务器共享交流资源,大量的文件散布在各个FTP主机上,查询起来非常不方便。因此,他开发了一个可以按照文件名查找文件的系统,能定期搜集并分析FTP服务器上的文件名信息,自动索引这些文件。工作原理与现在的搜索引擎已经非常接近,依靠脚本程序自动搜索分散在各处FTP主机中的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。

世界上第一个网络爬虫“互联网漫游者”(“www wanderer”)是由麻省理工学院(MIT)的学生马休·格雷(Matthew Gray)在 1993 年写成。刚开始,它只用来统计互联网上的服务器数量,后来则发展为能够通过它检索网站域名。

随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在“互联网漫游者”基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。其设想是,既然所有网页都可能有连向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。

其后,无数的搜索引擎促使了爬虫越写越复杂,并逐渐向多策略、负载均衡及大规模增量抓取等方向发展。爬虫的工作成果是搜索引擎能够遍历链接的网页,甚至被删除的网页也可以通过“网页快照”的功能访问。

网络爬虫的礼仪

礼仪一:robots.txt文件

每个行业都有其Code of Conduct,成为行为准则或行为规范。比如,你是某个协会中的成员,那就必须遵守这个协会的行为准则,破坏了行为准则是要被踢出去的。

最简单的例子,你加入的很多微信群,一般群主都会要求不可以私自发广告,如果未经允许发了广告,会被立刻踢出群,但是发红包就没事,这就是行为准则。

爬虫也有行为准则。早在 1994 年,搜索引擎技术刚刚兴起。那时的初创搜索引擎公司,比如AltaVista和DogPile,通过爬虫技术来采集整个互联网的资源,与Yahoo这样的资源分类网站激烈竞争。随着互联网搜索规模的增长,爬虫收集信息的能力快速进化,网站开始考虑对于搜索引擎爬取信息做出限制,于是robots.txt应运而生,成为爬虫界的“君子协定”。

robots.txt文件是业内惯用做法,不是强制性的约束。robots.txt的形式如下:

在上面这个robots.txt例子中,所有的爬虫都被禁止访问网站的任意内容。但是Google的爬虫机器人,可以访问除了private位置的所有内容。如果一个网站上没有robots.txt,是被认为默许爬虫爬取所有信息。如果robots.txt做了访问的限制,但是爬虫却没有遵守,那就不是技术实现这么简单的事情了。

礼仪二:爬取吞吐量的控制

曾经出现假冒Google搜索引擎的爬虫去对网站进行DDoS攻击,让网站瘫痪的事情。近年来,恶意爬虫造成的DDoS攻击行为有增无减,给大数据行业蒙上了爬虫的阴影。因为其背后的恶意攻击者,往往具备更为复杂和专业的技术,能绕过各种防御机制,让防范这样攻击行为难上加难。

礼仪三:做一个优雅的爬虫

优雅的爬虫背后,一定站着一个文明人或者一个文明团队。他们会考虑自己写的爬虫程序是否符合robots.txt协议,是否会对被爬网站的性能造成影响,如何才能不侵害知识产权所有者的权益以及非常重要的个人隐私数据等问题。

出于能力的差别,并不是每个爬虫团队都能考虑到这些问题。 2018 年,欧盟出台的《General Data Protection Regulation》(通用数据保护条例)中对数据的保护做出了严格的说明。 2019 年 5 月 28 日,国家互联网信息办公室发布的《数据安全管理办法》(征求意见稿)对爬虫和个人信息安全做出了非常严格的规定。比如:

(1)第十六条 网络运营者采取自动化手段访问收集网站数据,不得妨碍网站正常运行;此类行为严重影响网站运行,如自动化访问收集流量超过网站日均流量三分之一,网站要求停止自动化访问收集时,应当停止。

(2)第二十七条 网络运营者向他人提供个人信息前,应当评估可能带来的安全风险,并征得个人信息主体同意。

其实,我国 2017 年 6 月 1 日施行的《中华人民共和国网络安全法》第四章第四十一条和四十四条就已经对个人隐私信息数据的收集和使用做出明文规定,这也与爬虫直接相关。

法律制度的出台,给技术的边界做出了明确的限定,技术无罪并不能作为技术实施者为自己开脱的理由。爬虫在实现自己需求的同时,必须做到严格遵守行为准则和法律条例。

各类反爬虫技术介绍

为了保护自己合法权益不被恶意侵害,不少网站和应用APP应用了大量的反爬技术。这使得爬虫技术中又衍生出反反爬虫技术,比如各类滑动拼图、文字点选、图标点选等验证码的破解,它们相互促进、相互发展、相互伤害着。

反爬虫的关键在于阻止被爬虫批量爬取网站内容,反爬虫技术的核心在于不断变更规则,变换各类验证手段。

这类技术的发展甚至让人痴迷,比DOTA对战还让人热血沸腾。从那晃动如波浪的文字验证码图形的伪装色里彷佛都能看得见程序员的头发。

1、图片/Flash

这是比较常见的反爬手段,将关键数据转为图片,并添加上水印,即使使用了OCR(Optical Character Recognition,文字识别)也无法识别出来,让爬虫端获取了图片也得不到信息。早期一些电商的价格标签中经常见到这种方式。

2、JavaScript混淆技术

这是爬虫程序员遇到最多的一种反爬方式,简单来说其实就是一种障眼法,本质上还是一种加密技术。很多网页中的数据是使用JavaScript程序来动态加载的,爬虫在抓取这样的网页数据时,需要了解网页是如何加载该数据的,这个过程被称为逆向工程。为了防止被逆向工程,就用到JavaScript混淆技术,加JavaScript代码进行加密,让别人看不懂。不过这种方式属于比较简单的反爬方式,属于爬虫工程师练级的初级阶段。

3、验证码

验证码是一种区分用户是计算机还是人的公共全自动程序,也是我们经常遇到的一种网站访问验证方式,主要分为以下几种:

(1)输入式验证码

这是最最常见的,通过用户输入图片中的字母、数字、汉子等字符进行验证。

图中CAPTCHA 的全名是(Completely Automated Public Turing test to tell Computers and Humans Apart),中文翻译为:全自动区分计算机与人类的图灵测试。实现的方式很简单,就是问一个电脑答不出来但人类答得出来的问题。不过,现在的爬虫往往会用深度学习技术对这样的验证码进行破解,这样的图灵测试已经失效。

(2)滑块式验证码

鉴于输入式的图形验证码的缺点,容易被破解,而且有时候人类都识别不了。滑块验证码横空出世,这种验证码操作简便,破解难度大,很快就流行起来了。破解滑块验证码存在两大难点:一是必须知道图形缺口在哪里,也就是得知道滑块滑到哪;二是要模仿出人类滑动的手势。这样的验证码增加了一定的难度,也给爬虫界增加了很多乐趣,一时间大量破解滑块验证码的技术出现。

(3)点击式的图文验证和图标选择

图文验证,是通过文字提醒用户点击图中相同字的位置进行验证。

图标选择,是给出一组图片,按要求点击其中一张或者多张。

这两种原理相似,只不过是一个给出文字,点击图片中的文字;一个给出图片,点出符合内容的图片。这两种方法的共同点就是体验差,被广为诟病。

(4)手机验证码

对于一些重要的敏感信息访问,网站或APP端一般会提供填写手机验证码的要求,通过手机接受网站发送的验证码来进一步访问,这种方式对于数据隐私的保护比较好。

4、账号密码登陆

网站可以通过账号登陆来限制爬虫的访问权限,个人在使用很多网站服务的时候一般是需要进行账号注册的,使用的时候需要通过账号密码登陆才能继续使用服务。网站可以利用用户浏览器的Cookie来对用户的身份进行识别,通过保存在用户本地浏览器中加密的Cookie数据来进行用户访问会话的跟踪。这一般作为前面几种反爬方式的补充。

爬虫技术的发展方向

传统网络爬虫最大的应用场景是搜索引擎,普通的企业更多是做网站或应用。后来随着网络数据分析的需要,以及互联网上的舆情事件层出不穷,针对网络爬虫有了大量的需求,采集的对象主要是些新闻资讯。

近些年,由于大数据处理和数据挖掘技术的发展,数据资产价值的概念深入人心,爬虫技术得到更加广泛和深入的发展,采集对象也更丰富,高性能、并发式的技术指标也更高。

围绕网络爬虫合法性的讨论仍然存在,情况也比较复杂。目前的趋势下,许多法律问题还处于模糊地带,往往取决于具体的案例影响。然而,可以肯定的是,只要有互联网,就会有网络爬虫。只有网络爬虫让体量巨大的互联网变得可以搜索,使爆炸式增长的互联网变得更加容易访问和获取,在可预见的未来,互联网爬虫技术将继续得到发展。

互联网作为人类历史最大的知识仓库,是非结构化或非标准化的。互联网上聚集了大量的文本、图片、多媒体等数据,内容虽然非常有价值,但是知识提取的难度仍然非常巨大。语义互联网、知识共享等概念越来越普及,真正语义上的互联网将是网络爬虫的目标。此外,物联网技术的发展,将是互联网的升级形式,也将是爬虫技术未来发展的方向。

  • 相关推荐
  • 大家在看
  • 信用卡账单分期不灵活,使用微粒贷更方便

    信用卡账单分期是信用卡分期付款类型中的一种,这种分期付款方式是指持卡人使用信用卡刷卡消费后向信用卡中心要求将消费金额分期归还给银行。信用卡账单分期是最简单的分期还款方式,很多人在无法全额还款的时候,都会选择使用信用卡账单分期,但是信用卡账单分期并不灵活,想要提前还款还得把全部期数的手续费都还清,我觉得如果平时有借贷的需求,还是用微粒贷比较好,提前还款也不用交罚金。微粒贷方便在哪:1. 微粒贷作为微众银

  • 2020年哪张车主信用卡才是车主必备?平安好车主信用卡或许堪当此任

    中国作为全球最大的汽车消费市场,已连续多年汽车销量全球第一,且未来发展前景依然巨大。如此数量的增长必然带来服务品质提升的要求,也孕育着行业升级的机会。目前随着车主对消费的要求越来越高,对一站式汽车综合金融服务也有了更高的渴望和追求。如何给车主一个更集大成的服务方案?在经过对用户需求的不断探索之后,平安银行好车主信用卡给出了自己的答案。1 月 8 日,平安在行业内率先推出“集大成”的车主服务方案——平安?

  • 信用卡账单分期不灵活,灵活借贷推荐微粒贷

    在日常生活中使用信用卡消费很方便,但是也很容易造成无法全额还款的局面,此时我们可以选择使用信用卡账单分期,来减轻自己的还款负担。但是编者并不推荐大家使用信用卡账单分期,因为信用卡账单分期真的不是特别灵活,提前还款还要把所有期数的手续费都还上,灵活借贷推荐微粒贷,微粒贷支持随借随还,提前还款也不用交罚金。了解既安全又灵活的微粒贷:①微粒贷是微众银行旗下的小额信贷产品,具有安全保障性。②微粒贷日利率在

  • Huawei Card 助力数字信用卡服务新体验

    【TechWeb】在4月8日华为春季新品线上发布会上,华为消费者业务CEO余承东隆重介绍了「华为手机用户的专属数字信用卡」Huawei Card。该卡片是华为携手银联及合作银行为用户打造的的专属数字信用卡,具备数字与实体双卡属性,致力于为用户提供极简、安全、透明、健康的数字信用卡服务体验。在权益方面,Huawei Card以用户为中心,为持卡人提供了笔笔返现、首年免年费、华为会员权益、机场/高铁贵宾厅等多重权益。权益范围覆盖了日 常

  • 能加油优惠的好车主信用卡,一年为你省下大笔养车费!

    相对其他金融产品来说,信用卡使用的频次多、粘度高,特别是车主类信用卡,需求更是旺盛,所以很多银行都致力于在车主卡上发力,陆陆续续推出了各种权益的车主信用卡。这其中最懂车主需求的,权益覆盖面最广的,就是今年1月8日平安集团推出的平安好车主信用卡,直接将权益扩充到了车主生活的方方面面,以至于一些网友笑称“想在2020年开车无压力,一张平安好车主信用卡就够了!”一、平安好车主信用卡加油88折,为车主省油钱。现在

  • 车主卡哪个银行好?平安好车主信用卡硬核权益全方位覆盖车主生活

    据国家统计局发布国民经济和社会发展统计公报数据显示,截至2019年末全国民用私人轿车保有量已经达到了1.3亿辆。而随着汽车消费市场需求的日渐蓬勃,其孕育出的汽车服务“后市场”也表现出了巨大的商业价值,因此各大银行都在紧锣密鼓地开发车主类信用卡,特别是具有一站式汽车综合金融服务的车主卡。其中,平安银行率先完成,并于2020年1月8日推出了“集大成”的车主服务方案——平安好车主信用卡。据悉,这款车主必备“神卡”不?

  • 车主卡哪个银行好?平安银行好车主信用卡,一站式车主服务给你安排!

    随着越来越多年轻人加入购车、用车行列,青年人群已成为汽车市场的主力消费者。据《2019中国汽车消费者洞察报告》显示,2019年上半年,90后人群在汽车消费市场上占比达42.4%。该报告预测,至2020年,90后人群的汽车消费占比,将达到汽车市场的45%。可以看到,用车生态已经年轻化,车主服务也随之出现了改变。在这场年轻化“线上战役”中,中国平安一早便把握了住了先机,在“金融+科技”、“金融+生态”战略驱动下,创新地推出的

  • 活力复苏 美好正当时 —— 兴业银行信用卡“活力生活节”正式启动

    初夏美好时节,国内消费指数也随之逐步回暖。兴业银行信用卡中心正式启动首届“活力生活节”序幕,以“活力复苏 美好正当时”为主题,奉上涵盖吃穿住行多项消费福利,和所有持卡人一起,携手重启美好生活。提振消费信心打造活力生活作为兴业银行零售条线的“活力担当”,兴业银行信用卡中心此次启动“活力生活节”,不仅是为了集中呈现酝酿多月的精品活动,更是与持卡人趣味互动的一次尝试。深知美食是“复苏刚需”的兴业银行信用?

  • 和包支付号码借为消费者还款减负 信用卡还款领5元现金红包

    利用信用卡借款提前消费已经成了大多数年轻人的生活方式,其申请简单、借还方便,可提前享受自己需要的物质条件。但是,在还款时,许多人还是会感觉到颇有压力,尤其是逾期还款,还将产生一定的利息费用。为给年轻人消费生活减负,移动支付领先品牌——中移电子商务和包支付惊喜推出信用卡还款得现金红包优惠,即从现在起,用和包支付进行信用卡还款业务时,可领取5元现金红包,其暖心福利短时间内便迅速收获众多和包使用者的关注。和包支付品

  • 和包支付号码借为消费者还款减负 信用卡还款领5元现金红包

    利用信用卡借款提前消费已经成了大多数年轻人的生活方式,其申请简单、借还方便,可提前享受自己需要的物质条件。但是,在还款时,许多人还是会感觉到颇有压力,尤其是逾期还款,还将产生一定的利息费用。为给年轻人消费生活减负,移动支付领先品牌——中移电子商务和包支付惊喜推出信用卡还款得现金红包优惠,即从现在起,用和包支付进行信用卡还款业务时,可领取5元现金红包,其暖心福利短时间内便迅速收获众多和包使用者的关注。和包支付品

  • 中信银行信用卡深化与互联网企业合作,丰富网络产品体系

    3 月 26 日晚间,中信银行公布了 2019 年年度业绩报告。整体来看,中信银行各项核心指标均表现稳健,资产规模保持合理增长,总资产达 67504 亿元,增幅达11.27%。报告期内,实现归属于中信银行股东净利润 480.15 亿元,较上年增长 7.87%;实现营业净收入1875. 84 亿元,较上年增长 13.79%。报告期内,中信银行集团实现手续费及佣金净收入463.84 亿元,比上年增加 93.76 亿元,增长 25.34%。其中,银行卡手续费比上年增加 102.84 亿

  • Twitter证实泄露客户计费信息 包括不完整信用卡号

    Twitter向包括广告客户在内的部分商业合作伙伴通报称,安全缺陷导致敏感的计费信息遭到泄露。Twitter称,计费信息存储在浏览器缓存中,可能被共享一台计算机的其他人看到。被泄露的信息可能包括电子邮件地址、电话号码,以及与部分商业账户关联的信用卡号后4位。据悉,Twitter 5月20日获悉缺陷的存在。在发送给TechCrunch 的声明中,Twitter证实了该安全缺?

  • 蚂蚁信用评估公司完成信用评级机构备案

    DoNews6月16日消息(记者 程梦玲)中国人民银行杭州中心支行昨日晚间公告称,按照2019年11月26日人民银行、发展改革委、财政部、证监会联合发布的《信用评级业管理暂行办法》规定,中国人民银行杭州中心支行对蚂蚁信用评估有限公司完成备案办理。公开信息显示,蚂蚁信用评估有限公司于今年3月24日成立,注册资本5000万元,是蚂蚁集团的全资子公司。公告提示称,完成备案办理不视为对信用评级机构评级质量、技术方法、风险管理、内?

  • 卡姆

    卡姆,脱口秀演员,笑果文化旗下艺人。因《奇葩说》、《脱口秀大会》、《吐槽大会》被人熟知。 2018 年毕业于北京电影学院。 2019 年获《脱口秀大会第二季》总冠军,随后以固定卡司的身份参与戏剧脱口秀节目《吐槽大会第四季》。

  • 饿了么吃货卡是什么 饿了么花呗吃货卡有什么用

    饿了么在最近推出了一个吃货卡,很多人还不清楚饿了么新推出的吃货卡是什么,到底有什么用处,下面就来为大家分享一下饿了么吃货卡的介绍。

  • 信用钱包:全面开启平台化战略

    信用钱包通过不断改革发展,致力于提升公司的创新科技能力,在业界已受到广泛的关注与肯定,占据着重要地位。信用钱包通过对市场的不断摸索与经验的积累,将公司定位为基于人工智能、机器学习等创新科技能力的整体解决方案供应商。信用钱包专注于为小微企业行业提供全链条的技术解决方案,可以满足机构对于线上业务不同发展阶段的诉求。信用钱包根据未来市场变化与需要,不断优化公司内部业务结构与战略发展目标。目前,信用钱包已

  • 继芝麻信用和微信支付分之后 360金融也推出信用分“360分”

    【TechWeb】6月22日消息,近日,360金融正式推出个人信用分360分,此功能已在360借条APP上线。据悉,这是继蚂蚁芝麻信用分和腾讯微信支付分之后,国内互联网企业+银行综合体建立的第三个信用分体系。目前,用户可以登陆360借条APP,在首页“更多”点击“360分”查询自己的信用分值。据介绍,360分根据用户的信用历史、行为偏好、履约能力、身份特质和人脉关系五大维度评估,分数区间为0-900分,丰富的履历记录将有助获得更高的360

  • IC卡、校园卡再见 联通宣布公用电话全面停止服务

    在手机没有普及的时候,公用电话成为很多人联络家人、朋友甚至恋人的选择,早些年的电视剧还有情侣在公用电话亭中诉衷肠的情节,在2G、3G时代还能见到,不过现在公用电话几乎没人用了,联通已经

  • 和平精英改名卡怎么没了 改名卡维护时间公告

    ​和平精英改名卡最近看到很多玩家反应说是正在维护,不清楚是什么情况,下面就来为大家分享一下和平精英改名卡维护公告。

  • 笑果文化回应卡姆吸毒被捕:无限期停止卡姆的所有工作

    6月3日,针对头口秀演员卡姆吸毒被捕一事,随后,卡姆所在公司笑果文化在微博发布声明回应此事,称关于艺人卡姆因涉毒被拘留一事,极度痛心。公司将积极配合有关部门工作,尊重、支持相关的处理结果。公司代表卡姆对大众真诚道歉,并决定将无限期停止的所有工作,“我们必将严肃反思,加强对艺人的普法教育、社会责任意识教育及文化道德建设,并接受社会舆论对我们的监督。”

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议