首页> 中国专利> 一种支持人工会话嫁接的网络爬虫系统和实现方法

一种支持人工会话嫁接的网络爬虫系统和实现方法

摘要

本发明涉及一种支持人工会话嫁接的网络爬虫系统和实现方法。首先分析要爬取的目标网站,将登录页面设为初始页面;用户模拟模块与目标网站建立网络连接,为人工操作提供信息输入接口;人工智力参与模块输入所需要的信息并传递给用户模拟模块;用户模拟模块定位登录页面中的输入框和登录按钮,输入相关信息并通过网络访问模块外发到目标网站进行登录;登录完成后用户模拟模块打开爬虫要爬取的页面,并将页面的回应信息传递给爬虫模块;爬虫模块获得执行权限后,沿用人工在用户模拟模块中创建的网络会话,访问目标网站,爬取网站内容。本发明将人工智力参与所建立的网络会话用于爬虫模块,能够让网络爬虫获得与真人上网完全相同的网络访问能力。

著录项

  • 公开/公告号CN104298716A

    专利类型发明专利

  • 公开/公告日2015-01-21

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201410478932.7

  • 发明设计人 龚晓锐;孙骁永;朴爱花;邹维;

    申请日2014-09-18

  • 分类号

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余长江

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2023-12-17 04:06:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-19

    授权

    授权

  • 2015-02-18

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140918

    实质审查的生效

  • 2015-01-21

    公开

    公开

说明书

技术领域

本发明属于计算机应用技术领域,涉及网络爬虫技术,具体涉及采用人工会话嫁接技术 来增强网络爬虫爬取能力的实现方法。

背景技术

随着网络的快速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成 为一个巨大的挑战。用户通过搜索引擎进行信息的搜索,但是返回的结果往往包含用户不关 心的信息,用户需要对这大量的结果再次进行筛选。并且现在数据的形式越来越丰富,例如: 图片、数据库、音频、视频等等,搜索引擎往往对这种信息密集且具有一定结构的数据无能 为力。而且搜索引擎往往是针对关键字进行检索的,难以支持根据语义信息提出的查询。

为了解决上述问题,聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据 既定的抓取目标,有选择地访问万维网上的网页与相关的链接,获取所需要的信息。与通用 爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页, 为面向主题的用户查询准备数据资源。

虽然当前网络爬虫技术已相对成熟,但很多网络资源会采用一些特别的机制来区分或限 制网络机器人的访问,例如登录、验证码输入、个人身份要素绑定等。虽然一些爬虫也提供 了突破这些访问限制的机制,如表单的自动填充和提交等。但是随着双方的对抗逐渐升级, 页面设计复杂越来越高,使得这些手段受到极大的限制。而一些类图灵测试的引入,更是堵 住了绝大部分传统爬虫的道路,比如验证码输入、问题回答等。

为了突破这些机制,Human Computation提供了一种人工智力参与的思路。其出发点是 把这些限制网络机器人的难题交给人来解决,如验证码这种形式,对于爬虫来说很难识别, 但对于人来说却是十分容易就能够识别出来的。目前WEB应用的实现逻辑中,一个网站一旦 有某个用户登录后,该用户在网站内部继续访问其他页面时会保持其登录状态,而不需要重 新登录,这通常是采用HTTP会话来进行控制的。利用这个机制,我们就可以将Human  Computation技术应用在爬虫系统中,将爬虫嫁接在人工创建的网络会话上进行工作,从而 利用人工智力的产出,使爬虫能够较容易地突破目标网站的访问限制机制,爬取所需要的页 面数据。

发明内容

本发明提出一种支持人工会话嫁接的网络爬虫实现方法,把爬虫模块、人工智力参与模 块和用户模拟模块结合在一起,使得人工智力参与所建立的网络会话能够用于爬虫模块,从 而让网络爬虫获得与真人上网完全相同的网络访问能力。

为实现上述目的,本发明采用的技术方案如下:

一种支持人工会话嫁接的网络爬虫系统,其包括:

网络访问模块,用于提供对目标网站的网络访问能力;

用户模拟模块,连接网络访问模块,用于模拟用户访问目标网站、建立HTTP连接;

人工智力参与模块,连接用户模拟模块,用于通过网站的检查机制;

爬虫模块,连接用户模拟模块,用于爬取网站内容。

一种采用上述系统的支持人工会话嫁接的网络爬虫实现方法,其步骤包括:

1)分析要爬取的目标网站,对于需要登录的目标网站,将登录页面设为初始页面,然后 交由用户模拟模块处理;

2)用户模拟模块与目标网站建立网络连接,并生成网络会话,然后打开所述初始页面, 为人工操作提供信息输入接口;

3)人工智力参与模块在信息输入接口中输入所需要的信息(用户名、密码、验证码等信 息),并将输入的信息传递给用户模拟模块;

4)用户模拟模块定位目标网站登录页面中的输入框和登录按钮,输入相关信息并通过网 络访问模块外发到目标网站进行登录;

5)登录完成后用户模拟模块打开爬虫要爬取的页面,并将页面的回应信息传递给爬虫模 块,同时将执行权限转交给爬虫模块,使其利用已创建的网络会话;

6)爬虫模块获得执行权限后,沿用人工在用户模拟模块中创建的网络会话,通过网络访 问模块访问目标网站,爬取网站内容。

本发明中用户模拟模块与目标网站建立网络连接后,生成的网络会话为初始会话,该初 始会话还不具有充分的网络访问能力,比如无法访问登录后可访问的资源。

本发明中用户模拟模块给人工提供的信息输入接口可以是图形界面,也可以是命令行界 面。

本发明中用户模拟模块与爬虫模块可以在同一个进程中,也可以是不同的进程,但需要 能够利用操作系统提供的机制共享或传递网络会话。

本发明中爬虫模块在获得执行权限后,需要遵循网络协议的限制,保持对网络的访问, 避免网络会话超时而失效。

与现有技术相比,本发明不再将突破限制机制的重点放在机器智能方面,也就是说不必 再去花大力气提高机器识别图片、模拟人工操作等难以取得较大进展的技术上,将最核心的 难题交给人来处理,同时将人工操作与爬虫程序的执行环境组合在一起,利用操作系统在进 程管理和网络会话管理方面的机制,使得两种操作能够使用同一个网络会话,从而顺利地将 爬虫程序嫁接在人工操作所建立的网络会话上,获得与真人上网相同的访问能力。

附图说明

图1是本发明中四部分协作完成会话嫁接的示意图。

图2是本发明的模块组成示意图。

图3是本发明的人工会话嫁接操作流程图。

具体实施方式

下面通过具体实施例和附图,对本发明做进一步说明。

图1是本发明中四部分协作完成会话嫁接的示意图,图2是具体的模块组成示意图,图 3是人工会话嫁接操作流程图。本发明在网络爬虫程序中,将网络访问模块独立出来,提供 HTTP访问接口;再加入一个用户模拟模块,与网络爬虫模块共用同一个网络访问模块。用 户模拟模块同时提供接口,给人工智力参与模块输入需要依赖人工智力确定的信息,包括用 户名、口令、验证码,以及其他类图灵测试问题的答案。

在定位了目标网站后,用户模拟模块发起对目标网站的访问,本示例采用浏览器FireFox 模拟用户的网络访问,因此利用Python程序webdriver函数,启动Firefox进行访问,调用方 式为:browser=webdriver.Firefox()。访问建立后,通过browser.get()打开登陆页面,等待人 工智力参与模块进行输入。

人工智力参与模块通过分析登陆页面,将所需要的信息通过用户模拟模块提供的接口, 输入给用户模拟模块,本示例采用一个Python程序接收输入,然后再将输入信息传递给用户 模拟模块。

用户模拟模块接收到输入后,将输入信息通过网络访问模块发送到目标网站的服务器上。

由于浏览器与用户模拟模块处于同一个进程中,用户提交的信息通过同一个网络访问模 块外发到目标网站上,其网络会话将被服务器一端判定为已登录会话,拥有后续访问登录后 资源的能力。

用户模拟模块将接收到的HTTP Response数据内容传递给爬虫模块,通知爬虫模块会话 已正确建立,可以进行后续资源访问。

爬虫模块收到通知后,获取到HTTP Response中的相关信息,通过网络访问模块访问目 标网站。此时由于没有跨进程,爬虫模块可以继续沿用HTTP Response中的会话信息,让服 务器端感受不到程序的切换。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可 以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保 护范围应以权利要求所述为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号