CN109710831A - 一种基于浏览器插件的网络爬虫系统 - Google Patents

一种基于浏览器插件的网络爬虫系统 Download PDF

Info

Publication number
CN109710831A
CN109710831A CN201811629485.5A CN201811629485A CN109710831A CN 109710831 A CN109710831 A CN 109710831A CN 201811629485 A CN201811629485 A CN 201811629485A CN 109710831 A CN109710831 A CN 109710831A
Authority
CN
China
Prior art keywords
webpage
browser
plug
code
web page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811629485.5A
Other languages
English (en)
Inventor
张友书
陈思成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan XW Bank Co Ltd
Original Assignee
Sichuan XW Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan XW Bank Co Ltd filed Critical Sichuan XW Bank Co Ltd
Priority to CN201811629485.5A priority Critical patent/CN109710831A/zh
Publication of CN109710831A publication Critical patent/CN109710831A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

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

Description

一种基于浏览器插件的网络爬虫系统
技术领域
本发明涉及网络爬虫技术领域,提供了一种基于浏览器插件的网络爬虫系统。
背景技术
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的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、插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至步骤S6完成下一个网页抓取;
步骤S11、插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。
一种基于浏览器插件的网络爬虫装置,包括以下装置:
加载模块:打开种子网页,浏览器发起网络请求加载网页初始源代码;
中间源代码生成装置:浏览器获取网页初始源代码后,执行网页初始源代码中的HTML、CSS、JS代码,得到网页中间源代码;
网页数据获取模块:浏览器执行网页中间源代码中的动态JS代码,发起 Ajax请求,获取网页数据;
渲染模块:浏览器获取网页数据后,根据网页中间源代码中的JS代码逻辑,将数据插入到网页中间源代码中,渲染得到网页最终源代码;
触发模块:浏览器渲染得到网页最终源代码后,触发网页加载完成事件;
监听模块:插件监听浏览器网页加载完成事件,当浏览器出发网页加载完成事件时,插件收到浏览器通知,调起插件的网页处理程序;
网页处理模块:插件的网页处理程序,通过调用浏览器获取网页源代码接口,得到网页最终源代码;
下载模块:插件的网页处理程序,通过将网页最终源代码作为接口参数,调用浏览器下载接口,将网页最终源代码下载至本地,完成当前网页的爬取;
待抓取网页模块:插件的网页处理程序,解析网页最终源代码的所有网页 URL,去重后保存至待抓取队列中,得到下一步待抓取的网页;
循环调度模块:插件的抓取调度程序,轮询检查待抓取队列,如果待抓取队列不为空,则根据先进先出的原则,从队列中取出最先进入队列的网页 URL,调用浏览器打开新标签接口,打开该网页URL,并跳转至监听模块完成下一个网页抓取;
结束判断模块:插件的抓取调度程序,轮询检查待抓取队列,如果抓取队列为空,则所有网页抓取结束,结束本次抓取任务。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。

Claims (2)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811629485.5A CN109710831A (zh) 2018-12-28 2018-12-28 一种基于浏览器插件的网络爬虫系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811629485.5A CN109710831A (zh) 2018-12-28 2018-12-28 一种基于浏览器插件的网络爬虫系统

Publications (1)

Publication Number Publication Date
CN109710831A true CN109710831A (zh) 2019-05-03

Family

ID=66259178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811629485.5A Pending CN109710831A (zh) 2018-12-28 2018-12-28 一种基于浏览器插件的网络爬虫系统

Country Status (1)

Country Link
CN (1) CN109710831A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177623A (zh) * 2019-12-23 2020-05-19 北京健康之家科技有限公司 信息处理方法及装置
CN111414525A (zh) * 2020-03-25 2020-07-14 深圳市腾讯网域计算机网络有限公司 小程序的数据获取方法、装置、计算机设备和存储介质
CN111737629A (zh) * 2020-07-02 2020-10-02 杭州海康威视数字技术股份有限公司 一种数据探测方法及装置
CN113971234A (zh) * 2021-10-27 2022-01-25 湖北天融信网络安全技术有限公司 一种数据爬取方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078875A1 (en) * 2010-09-27 2012-03-29 Michael Price Web browser contacts plug-in
CN103440139A (zh) * 2013-09-11 2013-12-11 北京邮电大学 一种面向主流微博网站微博id的采集方法及工具
CN103475687A (zh) * 2013-05-24 2013-12-25 北京网秦天下科技有限公司 用于下载网站数据的分布式方法和系统
CN109063144A (zh) * 2018-08-07 2018-12-21 广州金猫信息技术服务有限公司 可视化网络爬虫方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078875A1 (en) * 2010-09-27 2012-03-29 Michael Price Web browser contacts plug-in
CN103475687A (zh) * 2013-05-24 2013-12-25 北京网秦天下科技有限公司 用于下载网站数据的分布式方法和系统
CN103440139A (zh) * 2013-09-11 2013-12-11 北京邮电大学 一种面向主流微博网站微博id的采集方法及工具
CN109063144A (zh) * 2018-08-07 2018-12-21 广州金猫信息技术服务有限公司 可视化网络爬虫方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
魏少鹏: "基于Chrome浏览器插件的爬虫系统", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177623A (zh) * 2019-12-23 2020-05-19 北京健康之家科技有限公司 信息处理方法及装置
CN111414525A (zh) * 2020-03-25 2020-07-14 深圳市腾讯网域计算机网络有限公司 小程序的数据获取方法、装置、计算机设备和存储介质
CN111414525B (zh) * 2020-03-25 2024-01-02 深圳市腾讯网域计算机网络有限公司 小程序的数据获取方法、装置、计算机设备和存储介质
CN111737629A (zh) * 2020-07-02 2020-10-02 杭州海康威视数字技术股份有限公司 一种数据探测方法及装置
CN113971234A (zh) * 2021-10-27 2022-01-25 湖北天融信网络安全技术有限公司 一种数据爬取方法、装置、电子设备及存储介质
CN113971234B (zh) * 2021-10-27 2023-03-10 湖北天融信网络安全技术有限公司 一种数据爬取方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109710831A (zh) 一种基于浏览器插件的网络爬虫系统
CN106021257B (zh) 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN105243159B (zh) 一种基于可视化脚本编辑器的分布式网络爬虫系统
CN107729564A (zh) 一种分布式的聚焦网络爬虫网页爬取方法及系统
CN103475687B (zh) 用于下载网站数据的分布式方法和系统
CN102054028B (zh) 一种网络爬虫系统实现页面渲染功能的方法
CN102375951A (zh) 网页安全检测方法和系统
CN104021231B (zh) 浏览器中显示网页的方法和装置
CN104424018B (zh) 分布式计算事务处理方法及装置
CN102937989B (zh) 并行化分布式互联网数据抓取方法及其系统
CN103092936B (zh) 一种物联网动态页面实时信息采集方法
CN103049383A (zh) 一种开发测试云系统
CN107609150A (zh) 一种基于页面元素选取的交互式网络爬虫创建方法及系统
CN107885777A (zh) 一种基于协作式爬虫的抓取网页数据的控制方法及系统
CN106506389A (zh) 网络请求异步处理方法及装置
CN102646129A (zh) 一种主题相关的分布式网络爬虫系统
CN108959539B (zh) 一种基于规则可配置的网页数据解析方法
CN109063144A (zh) 可视化网络爬虫方法及装置
CN109614539A (zh) 数据抓取方法、装置及计算机可读存储介质
CN104915193B (zh) 一种流程引擎的处理方法和装置
CN104317857B (zh) 一种房屋信息采集服务系统
CN109710830A (zh) 一种基于浏览器插件的分布式网络爬虫方法及系统
CN108011931A (zh) Web数据采集方法和Web数据采集系统
CN109600385A (zh) 一种访问控制方法及装置
CN103399933B (zh) 一种抓取网络平面媒体的网页内容的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190503