爬虫暗网抓取

目录

 暗网抓取

查询组合问题

文本框填写问题


 暗网抓取

所谓暗网,是指目前搜索引擎爬虫按照常规方式很难抓取到的互联 网页面。如前所述,搜索引擎爬虫依赖页面中的链接关系发现新的页 面,但是很多网站的内容是以数据库方式存储的,典型的例子是一些垂 直领域网站,比如携程旅行网的机票数据,很难有显式链接指向数据库 内的记录,往往是服务网站提供组合查询界面,只有用户按照需求输入 查询之后,才可能获得相关数据。所以,常规的爬虫无法索引这些数据 内容,这是暗网的命名由来.

而暗网爬虫为了能够挖掘数据库的记录,必须模拟人的行为,填 写内容并提交表单。对于暗网爬虫来说,其技术挑战有两点:一是查询 组合太多,如果一一组合遍历,那么会给被访问网站造成太大压力,所 以如何精心组合查询选项是个难点;第二点在于:有的查询是文本框, 比如图书搜索中需要输入书名,爬虫怎样才能够填入合适的内容?这个 也颇具挑战性。

查询组合问题

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

垂直搜索网站往往会给用户提供多个查询输入框,不同输入框代表 了搜索对象某方面的属性,通过组合这些属性来将搜索范围缩小。对于 暗网爬虫来说,一个简单粗暴的方式就是:将各个输入框可能的输入值 组合起来形成查询,比如对于机票查询来说,将所有出发城市、所有目 的城市和时间范围的选项一一组合,形成大量的查询,提交给垂直搜索 引擎,从其搜索结果里提炼数据库记录。这么做比较野蛮,而且也不是 很必要,因为很多组合是无效的,大量的返回结果为空,同时对被访问 网站造成了巨大的流量压力。 Google对此提出了解决方案,称之为富含信息查询模板 (Informative Query Templates)技术,为了了解其技术原理,首先需要 明白什么是查询模板。我们以图2-11所示的“职位搜索”垂直网站来说 明。 图2-11 “职位搜索”垂直网站 在图2-11的示例中,为了描述一个职位,完整的查询由3个不同的 属性构成:职位类别、行业类别和工作地点。如果在向搜索引擎提交查 询的时候,部分属性被赋予了值,而其他属性不赋值,则这几个赋值的 属性一起构成了一个查询模板。 图2-12是若干个“查询模板”的示例,如果模板包含一个属性,则称 之为一维模板,图中模板1是一维模板,模板2和模板3是两个二维模 板,模板4是三维模板。

 

假设按照上面方式对所有查询模板一一试探,判断其是否富含信息 查询模板,则因为查询模板数量太多,系统效率还是会很低。为了进一 步减少提交的查询数目,Google的技术方案使用了ISIT算法。 ISIT算法的基本思路是:首先从一维模板开始,对一维查询模板逐 个考察,看其是否富含信息查询模板,如果是的话,则将这个一维模板 扩展到二维,再次依次考察对应的二维模板,如此类推,逐步增加维 数,直到再也无法找到富含信息查询模板为止。通过这种方式,就可以 找到绝大多数富含信息查询模板,同时也尽可能减少了提交的查询总 数,有效达到了目的。Google的评测结果证明,这种方法和完全组合方 式比,能够大幅度提升系统效率。 如果读者对于数据挖掘有所了解,可以看出,Google提出的算法和 数据挖掘里经典的Apriori规则挖掘算法有异曲同工之处。

文本框填写问题

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shallow_Carl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值