一种基于浏览器插件的网络爬虫系统技术方案

技术编号:21034584 阅读:21 留言:0更新日期:2019-05-04 05:32
本发明专利技术涉及网络爬虫技术领域,提供了一种基于浏览器插件的网络爬虫系统。主旨在于解决传统爬虫方式采用模拟器在模拟执行HTML、JS、CSS代码时不同版本兼容差,工作量大实现难度高的问题。其主要技术方案为:步骤1、打开种子网页,浏览器发起网络请求加载网页,步骤2、浏览器执行网页HTML、JS、CSS代码,浏览器发起Ajax请求获取数据;步骤3、浏览器渲染得到最终网页源代码,并展现给用户;步骤4插件监听浏览器网页加载完成事件;步骤5浏览器完成当前网页加载,插件收到通知;步骤6插件调用浏览器获取网页源代码接口,得到网页源代码;步骤7插件调用浏览器下载接口,将网页源代码保存至本地。

A Web Crawler System Based on Browser Plug-in

【技术实现步骤摘要】
一种基于浏览器插件的网络爬虫系统
本专利技术涉及网络爬虫
,提供了一种基于浏览器插件的网络爬虫系统。
技术介绍
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。现有技术:方案一:主流的网络爬虫系统(如开源项目scrapy),通过在服务器端,模拟浏览器发起网络请求,模拟浏览器网页渲染过程,获取网页最终源代码。方案二:一种基于浏览器内核的网络爬虫系统如专利:201611005039.8现有技术缺点方案一缺点:在服务器端模拟浏览器发起网络请求,模拟浏览器网页渲染过程的方式,与浏览器实际打开网页,始终存在偏差。在某些情况下,比如不支持最新的JS/CSS规范,模拟的结果会出现错误。然而开发一款新的模拟浏览器,其花费的代价太大,导致现有的模拟浏览器已经不能适应目前现有的各种网页类型。方案二优点:基于浏览器的网络爬虫系统,解决了方案一的缺点,即直接通过浏览器而非模拟器,得到网页最终源代码。方案二缺点:基于浏览器内核开发,需要修改浏览器内核代码,重新编译得到新的浏览器,对开发人员要求高,开发速度慢,开发成本高,难以快速满足定制化数据爬取需求。
技术实现思路
本专利技术解决的问题如下:传统的爬虫程序,需要实现模拟器来完成网页的渲染过程。模拟器需要模拟执行HTML、JS、CSS代码,并兼容不同版本,工作量大实现难度高。由于传统的思路都是在后端实现爬虫,后端程序员对浏览器插件不熟悉,将两者结合相当于跨领域,要求知识全面,一般人想不到,所以主流方案并没有采用这种方式。为解决上述技术问题,本专利技术采用以下技术方案:一种基于浏览器插件的网络爬虫方法,包括以下步骤:步骤S1、打开种子网页,浏览器发起网络请求加载网页初始源代码;步骤S2、浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;步骤S3、浏览器执行网页中间源代码中的动态JS代码,发起Ajax请求,获取网页数据;步骤S4、浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;步骤S5、浏览器渲染得到网页最终源代码后,触发网页加载完成事件;步骤S6、插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;步骤S7、插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;步骤S8、插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;步骤S9、插件的网页处理程序,解析网页最终源代码的所有网页URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;步骤10、插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至步骤S6完成下一个网页抓取;步骤S11、插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。一种基于浏览器插件的网络爬虫装置,包括以下装置:加载模块:打开种子网页,浏览器发起网络请求加载网页初始源代码;中间源代码生成装置:浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;网页数据获取模块:浏览器执行网页中间源代码中的动态JS代码,发起Ajax请求,获取网页数据;渲染模块:浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;触发模块:浏览器渲染得到网页最终源代码后,触发网页加载完成事件;监听模块:插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;网页处理模块:插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;下载模块:插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;待抓取网页模块:插件的网页处理程序,解析网页最终源代码的所有网页URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;循环调度模块:插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至监听模块完成下一个网页抓取;结束判断模块:插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。因为本专利技术采用了以上技术方案,因此具备以下有益效果:一、基于插件开发网络爬虫系统,简单易行,成本低。二、直接通过浏览器而非模拟器,得到网页最终源代码,不存在模拟偏差。也不需要额外开发模拟浏览器。三、以插件的形式通过浏览器接口即可获取浏览器能力,不需要修改浏览器内核代码,插件开发简单快速。四、基于浏览器插件实现网络爬虫,无须修改内核代码,即可获取浏览器各种能力,简单高效。五、本专利技术克服了现有技术的技术偏见,由于传统的思路都是在后端实现爬虫,从前端浏览器插件实现爬虫,克服了传统爬虫模拟浏览器的弊端,且插件可快速配合浏览器进行扩展。具体实施方式下面将结合具体实施方式对本专利技术作进一步的描述。一种基于浏览器插件的网络爬虫方法,包括以下步骤:步骤S1、打开种子网页,浏览器发起网络请求加载网页初始源代码;步骤S2、浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;步骤S3、浏览器执行网页中间源代码中的动态JS代码,发起Ajax请求,获取网页数据;步骤S4、浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;步骤S5、浏览器渲染得到网页最终源代码后,触发网页加载完成事件;步骤S6、插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;步骤S7、插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;步骤S8、插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;步骤S9、插件的网页处理程序,解析网页最终源代码的所有网页URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;步骤10、插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,本文档来自技高网
...

【技术保护点】
1.一种基于浏览器插件的网络爬虫方法,其特征在于,包括以下步骤:步骤S1、打开种子网页,浏览器发起网络请求加载网页初始源代码;步骤S2、浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;步骤S3、浏览器执行网页中间源代码中的动态JS代码,发起Ajax请求,获取网页数据;步骤S4、浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;步骤S5、浏览器渲染得到网页最终源代码后,触发网页加载完成事件;步骤S6、插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;步骤S7、插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;步骤S8、插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;步骤S9、插件的网页处理程序,解析网页最终源代码的所有网页URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;步骤10、插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至步骤S6完成下一个网页抓取:步骤S11、插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。...

【技术特征摘要】
1.一种基于浏览器插件的网络爬虫方法,其特征在于,包括以下步骤:步骤S1、打开种子网页,浏览器发起网络请求加载网页初始源代码;步骤S2、浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;步骤S3、浏览器执行网页中间源代码中的动态JS代码,发起Ajax请求,获取网页数据;步骤S4、浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;步骤S5、浏览器渲染得到网页最终源代码后,触发网页加载完成事件;步骤S6、插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;步骤S7、插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;步骤S8、插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;步骤S9、插件的网页处理程序,解析网页最终源代码的所有网页URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;步骤10、插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至步骤S6完成下一个网页抓取:步骤S11、插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。2.一种基于浏览...

【专利技术属性】
技术研发人员:张友书陈思成
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1