网络爬虫 | 你不知道的暗网是如何被抓取的?

物理学研究表明,在目前宇宙所有物质的总体质量中,星系等可见物质只占其中的20%,不可探测的暗物质则占据了总质量的大约80%。互联网中的暗网可与宇宙中的暗物质相类比,而其所占的比例更是大于暗物质占宇宙总质量的比例,是目前明网网页的百倍。

所谓暗网,是指目前搜索引擎爬虫按照常规方式很难抓取到的互联网页面。搜索引擎爬虫依赖页面内中的链接关系发现新的页面,但是很多网站的内容是以数据库的方式存储的,典型的例子是一些垂直领域网站,比如京东的3C家电数码数据,很难有显性链接指向数据库内的记录,往往是服务网站提供组合查询界面,只有用户按照要求选择查询条件后,才可能获得相关数据。所以常规的爬虫无法索引这些数据内容,这是暗网的命名由来。

京东的手机类目筛选条件

为了能对暗网数据进行索引,需要研发与常规爬虫机制不同的系统,这类爬虫被称作暗网爬虫。暗网爬虫的目的是将暗网数据从数据库中挖掘出来,并将其加入搜索引擎的索引,这样用户在搜索时便可利用这些数据,增加信息覆盖程度。

目前大型搜索引擎服务提供商都将暗网挖掘作为重要研究方向,因为这直接关系到索引量的大小。在此领域的技术差异,将直接体现在搜索结果的全面性上,自然是竞争对手之间的必争之地。Google目前将其作为重点研究方向,而百度的“阿拉丁计划”目的也在于此。

垂直网站提供的搜索界面,往往需要人工选择或者填写内容,比如电商的商品查找需要按照分类及价格、属性、品牌、型号等筛选条件进行查找目标商品。而暗网爬虫为了能够挖掘数据库的记录,必须模拟人的行为,填写内容或选择筛选条件。对于暗网爬虫来说,其技术挑战有两点:一是查询组合太多,如果一一遍历组合,那么会给被访问网站造成太大压力,所以如何精心组合查询选项是个难点;第二点在于:有的查询是文本框,比如图书搜索中需要输入书名,爬虫怎样才能够填入合适的内容?这也是非常具有挑战性的任务。

查询组合问题

暗网爬虫能够将某个垂直网站数据库的记录尽可能多的下载到索引库中,但这是有约束和前提条件的,即不能给被访问网站造成过大的访问压力,同时尽可能节省爬虫本身的资源。

垂直搜索网站往往会给用户提供多个查询输入框,不同输入框代表了搜索对象某方面的属性,通过组合这些属性来将搜索范围缩小。对于暗网爬虫来说,一个简单粗暴的方式就是:将各个输入框可能输入的值组合起来形成查询,比如对于火车票查询来说,将所有出发城市、目的城市和时间范围的选项一一组合,形成大量的查询,提交给垂直搜索引擎,从其搜索结果里提炼数据库记录。这么做比较野蛮,而且也不是很方便,因为很多组合是无效的,大量的返回结果为空,同时对被访问网站造成了巨大的流量压力。

Google对此提出了解决方案,称之为富含信息查询模板技术,为了了解技术原理,首先需要明白什么是查询模板,我们以下图的职位搜索垂直网站来说明。

“职位搜索”垂直网站

为了描述一个职位,完成的查询由3个不同的属性构成:地点、行业类别和工作地点。如果在向搜索引擎提交查询的时候,部分属性被赋予了值,而其他属性不赋值,则这几个赋值的属性一起构成了一个查询模板。

上图是由若干个“查询模板”的示例,如果模板包含一个属性,则称之为一维模板,下图中模板一一维模板,模板2和模板3是两份二维模板,模板4是三维模板。

查询模板示例

对于一个固定的垂直搜索来说,其查询模板组合起来有很多,我们的任务是找到富含信息的查询模板,那么什么又是富含信息查询模板呢?Google的技术方案是这样定义的:对于某个固定的查询模板来说,如果给查询模板内每个属性都赋值,形成不同的查询组合,提交给垂直搜索引擎,观察所有返回页面的内容,如果相互之间的内容差异较大,则这个模板就是富含信息查询模板。

以上图的模板为例说明,其包含了两个属性:职能类别和行业类别。职位类别有3种不同赋值,行业类别有两种不同赋值,两者组合有6种不同的组合方式,形成这个模板的6个查询。将这6个查询分别提交给职位搜索引擎,观察返回页面内容变化情况,如果大部分内容返回相同或相似,则说明这个查询模板不是富含信息查询模板,否则可被认为是富含信息查询模板。

之所以如此规定,是基于如下考虑:如果返回结果页面内容重复太多,很可能这个查询模板的维度太高,导致很多组合无搜索结果,或构造的查询本身是错误的,搜索系统返回了错误页面。

假设按照上面方式对所有查询模板一一试探,判断是否为富含信息查询模板,则因为查询模板数量太多,系统效率还是会很低。为了进一步减少提交的查询数目,Google的技术方案使用了ISIT算法。

ISIT方法的基本思路是:首先从一维模板开始,对一维查询模板逐个考察,看其是否为富含信息查询模板,如果是的话,则将这个一维模板扩展到二维,再次依次考察对应的二维模板,如此类推,逐步增加维数,直到再也无法找到富含信息查询模板为止。通过这种方式,就可以找到绝大多数富含信息查询模板,同时也尽可能减少了提交的查询总数,有效达到了目的。Google的评测结果表明,这种方法和完全组合比,能够大幅度提升系统效率。

文本框填写问题

对于输入中的文本框,需要爬虫自动生成查询,以下是一个常用做法的流程图。

文本框自动填写

在爬虫运转起来之前,因为对目标网站一无所知,所以必须人工提供一些提示。在此例中,通过人工观察网站进行定位,提供一个与网站内容相关的初始种子查询关键词表。对于不同的网站,需要人工提供不同的词表,以此作为爬虫能够继续工作的基础条件。爬虫根据初始种子词表,向垂直搜索引擎提交查询,并下载返回结果页面。之后从返回结果页面里自动挖掘出相关的关键词,并形成一个新的查询列表,依次将新挖掘出的查询提交给搜索引擎。如此往复,直到无法下载到新的内容为止。通过这种人工启发结合递归迭代的方式,尽可能覆盖数据库里的记录。

如果您对爬虫有兴趣,还可以阅读:

全程干货 | 入门爬虫技术原理,看这篇就够了

全程干货 | 解密爬虫抓取、更新网页的策略方法

网络爬虫 | 你知道分布式爬虫是如何工作的吗?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,290评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,107评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,872评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,415评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,453评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,784评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,927评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,691评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,137评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,472评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,622评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,289评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,887评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,316评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,490评论 2 348

推荐阅读更多精彩内容