CN106844486A - 爬取动态网页的方法及装置 - Google Patents
爬取动态网页的方法及装置 Download PDFInfo
- Publication number
- CN106844486A CN106844486A CN201611209352.3A CN201611209352A CN106844486A CN 106844486 A CN106844486 A CN 106844486A CN 201611209352 A CN201611209352 A CN 201611209352A CN 106844486 A CN106844486 A CN 106844486A
- Authority
- CN
- China
- Prior art keywords
- crawled
- url
- crawling
- webpage
- characteristic information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000009193 crawling Effects 0.000 claims abstract description 111
- 230000001960 triggered effect Effects 0.000 claims description 12
- 238000004088 simulation Methods 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 19
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种爬取动态网页的方法及装置,涉及互联网技术领域,能够爬取动态网页中的动态数据。本发明的方法主要包括:在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;利用解析引擎对爬取的网页内容进行解析;若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;爬取所述点击事件产生的动态数据。本发明主要适用于利用无界面浏览器爬取网页内容的场景中。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种爬取动态网页的方法及装置。
背景技术
网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。传统的爬虫策略是从一个或若干初始网页的URL(Uniform Resource Locator,统一资源定位符)开始,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件才停止。通俗的讲,也就是通过源码解析来获得想要的内容。但是,由于只有静态网页中的内容全部记录在网页源码中,而动态网页中的内容并不全部记录在网页源码中,所以现有的这种爬取网页内容的方式无法获取网站中的所有内容,从而使得爬虫爬取网站信息的完整性降低。
发明内容
有鉴于此,本发明提供的爬取动态网页的方法及装置,能够爬取动态网页中的动态数据。
本发明的目的是采用以下技术方案来实现的:
一方面,本发明提供了一种爬取动态网页的方法,所述方法包括:
在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
利用解析引擎对爬取的网页内容进行解析;
若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
爬取所述点击事件产生的动态数据。
可选的,在爬取所述点击事件产生的动态数据之后,所述方法还包括:
利用解析引擎对所述动态数据进行解析;
若所述动态数据中含有特征信息,则继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
可选的,在利用解析引擎对爬取的网页内容进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
在利用解析引擎对所述动态数据进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据进行存储。
可选的,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
若含有其他URL,则利用所述无界面浏览器爬取所述其他URL的网页内容。
可选的,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
若含有所述待爬取的URL,则放弃爬取所述待爬取的URL的网页内容;
若没有所述待爬取的URL,则利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
可选的,在将解析出的除所述特征信息之外的数据进行存储之后,所述方法还包括:
将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
可选的,所述无界面浏览器为phantom JS浏览器。
另一方面,本发明提供了一种爬取动态网页的装置,所述装置包括:
爬取单元,用于在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
解析单元,用于利用解析引擎对所述爬取单元爬取的网页内容进行解析;
触发单元,用于当所述解析单元的解析结果为所述网页内容中含有触发加载动态数据的特征信息时,通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
所述爬取单元还用于爬取所述触发单元触发的所述点击事件产生的动态数据。
可选的,所述解析单元还用于在所述爬取单元爬取所述点击事件产生的动态数据之后,利用解析引擎对所述动态数据进行解析;
触发单元还用于当所述解析单元的解析结果为所述动态数据中含有特征信息时,继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
可选的,所述装置还包括:
存储单元,用于在利用解析引擎对爬取的网页内容进行解析之后,将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
所述存储单元还用于在利用解析引擎对所述动态数据进行解析之后,将解析出的除所述特征信息之外的数据进行存储。
可选的,所述装置还包括:
第一检测单元,用于在所述存储单元将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
所述爬取单元还用于当所述第一检测单元的检测结果为含有其他URL时,利用所述无界面浏览器爬取所述其他URL的网页内容。
可选的,所述装置还包括:
第二检测单元,用于在所述存储单元将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
放弃单元,用于当所述第二检测单元的检测结果为含有所述待爬取的URL时,放弃爬取所述待爬取的URL的网页内容;
所述爬取单元还用于当所述第二检测单元的检测结果为没有所述待爬取的URL时,利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
可选的,所述装置还包括:
导出单元,用于在所述存储单元将解析出的除所述特征信息之外的数据进行存储之后,将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
可选的,所述无界面浏览器为phantom JS浏览器。
借由上述技术方案,本发明提供的爬取动态网页的方法及装置,能够利用无界面浏览器爬取网页内容,并且在利用解析引擎对爬取的网页内容进行解析时,不仅解析网页内容中是否含有其他URL、文件等,还会解析网页内容中是否含有触发加密动态数据的特征信息,由此当含有这些特征信息时,通过无界面浏览器的模拟点击事件接口模拟用户基于网页的点击操作,从而触发这些特征信息对应的点击事件,使得无界面浏览器可以加载点击事件产生的动态数据,进而能够爬取动态网页中的动态数据,提高了爬虫爬取网页数据的完整性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种爬取动态网页的方法的流程图;
图2示出了本发明实施例提供的另一种爬取动态网页的方法的流程图;
图3示出了本发明实施例提供的一种爬取动态网页的装置的组成框图;
图4示出了本发明实施例提供的另一种爬取动态网页的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了爬取动态网页中的动态数据,本发明实施例提供了一种爬取动态网页的方法,如图1所示,所述方法包括:
101、在获取需要爬取的网页的URL之后,利用无界面浏览器爬取获取的URL的网页内容。
在实际应用中可以将需要爬取的网站的基本信息存储至关系型数据库(例如MySQL)中,也可以存储至其他类型的数据库中,例如Redis、内存储数据库等。网站的基本信息包括网站的名称、网站的域名、网站首页的URL以及网站中的其他URL等信息。此外,无界面浏览器是一种没有显示界面的浏览器,但是能够通过提供的各种接口,实现一般界面浏览器所能实现的除界面显示外的所有功能,例如可以访问网站服务器。本发明实施例中的无界面浏览器可以为phantom JS浏览器,也可以为其他无界面浏览器,其具体使用的浏览器不做限定。
网页爬取设备可以从数据库中读取需要爬取的网页的URL(例如网站首页的URL),然后通过访问无界面浏览器特定接口的方式实现对该URL网页内容的爬取操作。其中,网页内容包括HTML(HyperText Markup Language,超文本标记语言)页面、文件以及图片等。
需要说明的是,网页爬取设备在从数据库中读取需要爬取的URL时,可以只读取一个URL,也可以并发读取多个URL,并且并发读取的多个URL可以为同一个网站的URL,也可以为不同网站的URL。相应的,在利用无界面浏览器爬取网页内容时,可以只爬取一个URL的网页内容,也可以并发爬取多个URL的网页内容。
需要补充的是,存储网站基本信息的数据库可以位于网页爬取设备中,也可以为独立于网页爬取设备的存储设备,其具体表现形式在此不做限定。
102、利用解析引擎对爬取的网页内容进行解析。
在爬取网页内容后,可以将网页内容交由解析引擎进行解析;当爬取的网页是静态网页时,可以从中获取链接(即其他URL)、文件等数据;当爬取的网页是动态网页时,除了可以解析出上述数据外,还可以解析出触发加载动态数据的特征信息,例如用于完成用户查询、提交等动作的控件。
103、若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件。
当确定解析引擎的解析结果中含有触发加载动态数据的特征信息时,网页爬取设备可以确定当前爬取的网页为动态网页。为了获取完整的网页数据,网页爬取设备可以通过无界面浏览器的模拟点击事件接口来模拟用户的点击事件,触发执行所述特征信息对应的点击事件。其中,点击事件包括键盘点击事件和鼠标点击事件。
示例性的,若网页内容中含有用于完成提交动作的按钮,则网页爬取设备可以通过无界面浏览器的模拟点击事件接口模拟用户在网页中点击提交,以使得无界面浏览器将提交请求发送给网站服务器,从而网站服务器返回提交后的网页数据。
此外,在实际应用中,还有用程序触发网页访问的现象,因此解析引擎在对网页内容进行解析时,还可以解析是否含有程序触发的接口信息,若有,则可以利用无界面浏览器编写程序触发无界面浏览器访问网站服务器,从而爬取网站服务器返回的内容。
104、爬取所述点击事件产生的动态数据。
当触发特征信息对应的点击事件使得无界面浏览器向网站服务器申请加载动态数据后,网页爬取设备可以利用无界面浏览器爬取所述动态数据。其中,加载的动态数据可能是一个全新的网页,也可能是在原网页的基础的上增加了一些数据。
本发明实施例提供的爬取动态网页的方法,能够利用无界面浏览器爬取网页内容,并且在利用解析引擎对爬取的网页内容进行解析时,不仅解析网页内容中是否含有其他URL、文件等,还会解析网页内容中是否含有触发加密动态数据的特征信息,由此当含有这些特征信息时,通过无界面浏览器的模拟点击事件接口模拟用户基于网页的点击操作,从而触发这些特征信息对应的点击事件,使得无界面浏览器可以加载点击事件产生的动态数据,进而能够爬取动态网页中的动态数据,提高了爬虫爬取网页数据的完整性。
进一步的,依据图1所示的方法,本发明的另一个实施例还提供了一种爬取动态网页的方法,如图2所示,所述方法主要包括:
201、在获取需要爬取的网页的URL之后,利用无界面浏览器爬取获取的URL的网页内容。
本步骤的具体实现方式与图1中步骤101的具体实现方式一致,在此不再赘述。
202、利用解析引擎对爬取的网页内容进行解析。
当当前网页为静态网页时,解析结果可能包括链接(即其他URL)、文件等信息,当当前网页为动态网页时,解析结果除了包括链接、文件外,还会包括用于触发加载动态数据的特征信息。由于解析出的链接、文件等信息可以用于后续爬虫或者网页扫描等操作,所以可以将解析出的链接、文件等信息(即除所述特征信息之外的数据)进行存储。另外,为了避免后续发生重复爬虫的现象,可以将已爬取的URL进行记录,也就是说,在对网页内容进行解析后,还可以将当前爬取的URL进行存储。由此在后续爬取URL的网页内容之前,网页爬取设备可以先检测存储的已爬URL中是否含有待爬取的URL;若含有所述待爬取的URL,则放弃爬取所述待爬取的URL的网页内容;若没有所述待爬取的URL,则利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
此外,网页爬取设备还可以将网页爬取的状态进行存储,以便用户可以实时获知网页爬取状态。其中爬取状态主要包括:正在爬取、已经爬取完毕。
需要补充的是,可以将除特征信息之外的数据以及当前爬取的URL存储至一个数据库中,在实际应用中,该数据库可以与存储网站基本信息的数据库相同,也可以不同。具体的,存储除特征信息之外的数据以及当前爬取的URL的数据库可以为key-value数据库,例如为Redis,也可以为其他类型的数据库。
为了进一步爬取网站中的其他网页,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,网页爬取设备可以检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;若含有其他URL,则利用所述无界面浏览器爬取所述其他URL的网页内容;若没有其他URL,则可以检测存储的网站的基本信息中是否还有其他URL。
具体的,由于之前解析出的除所述特征信息之外的数据中可能含有链接(即其他URL),所以可以从存储的除所述特征信息之外的数据中查找需要爬取的其他URL。
进一步的,为了便于后续扫描引擎对网页内容进行扫描,以及便于用户查看网页内容,网页爬取设备可以在将解析出的除所述特征信息之外的数据进行存储之后,将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志,以便对网页爬取日志进行需要的操作。
203、若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件。
本步骤的具体实现方式与图1中步骤103的具体实现方式一致,在此不再赘述。
若所述网页内容中没有触发加载动态数据的特征信息,则执行步骤207。
204、爬取所述点击事件产生的动态数据。
本步骤的具体实现方式与图1中步骤104的具体实现方式一致,在此不再赘述。
205、利用解析引擎对所述动态数据进行解析。
在爬取动态数据后,可以利用解析引擎继续解析爬取的动态数据,以便解析出链接、文件,甚至动态数据中包含的其他用于触发加载动态数据的特征信息。
此外,与上述步骤202相似的,本步骤在对动态数据进行解析后,也可以将解析出的除所述特征信息之外的数据进行存储,并将本步骤中解析出的除所述特征信息之外的数据与将步骤202中解析出的除所述特征信息之外的数据存储至同一个数据库中。
206、若所述动态数据中含有特征信息,则继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
当爬取的动态数据中也包含用于触发加载动态数据的特征信息时,为了爬取完整的网页数据,还需要继续通过模拟点击事件接口触发特征信息对应的点击事件,以便继续爬取其他动态数据,直至爬取完当前网页的所有数据后,才爬取其他URL。也就是说,执行完本步骤后,继续执行步骤204,直至步骤205中解析的结果为不包含用于触发加载动态数据的特征信息时,执行步骤207。
207、利用无界面浏览器爬取其他URL的网页内容。
其中,爬取所述其他URL的网页内容后,继续执行步骤202。
本发明实施例提供的爬取动态网页的方法,在爬取第一层动态数据后,通过继续解析爬取的动态数据的方式来检测第一层动态数据中是否还有第二层动态数据,若含有第二层动态数据,则继续进行解析,直至爬取一个网页的所有动态数据。此外,在解析出链接后,还继续爬取链接所属网页。由此可知,本发明实施例可以爬取网站中所有的网页数据,能够进一步提高爬虫爬取网页数据的完整性。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种爬取动态网页的装置,如图3所示,所述装置主要包括:爬取单元31、解析单元32以及触发单元33。其中,
爬取单元31,用于在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
在实际应用中可以将需要爬取的网站的基本信息存储至关系型数据库(例如MySQL)中,也可以存储至其他类型的数据库中,例如Redis、内存储数据库等。网站的基本信息包括网站的名称、网站的域名、网站首页的URL以及网站中的其他URL等信息。
解析单元32,用于利用解析引擎对所述爬取单元31爬取的网页内容进行解析;
触发单元33,用于当所述解析单元32的解析结果为所述网页内容中含有触发加载动态数据的特征信息时,通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
所述爬取单元31还用于爬取所述触发单元33触发的所述点击事件产生的动态数据。
可选的,所述解析单元32还用于在所述爬取单元31爬取所述点击事件产生的动态数据之后,利用解析引擎对所述动态数据进行解析;
触发单元33还用于当所述解析单元32的解析结果为所述动态数据中含有特征信息时,继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
可选的,如图4所示,所述装置还包括:
存储单元34,用于在利用解析引擎对爬取的网页内容进行解析之后,将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
所述存储单元34还用于在利用解析引擎对所述动态数据进行解析之后,将解析出的除所述特征信息之外的数据进行存储。
需要补充的是,可以将除特征信息之外的数据以及当前爬取的URL存储至一个数据库中,在实际应用中,该数据库可以与存储网站基本信息的数据库相同,也可以不同。具体的,存储除特征信息之外的数据以及当前爬取的URL的数据库可以为key-value数据库,例如为Redis,也可以为其他类型的数据库。
可选的,如图4所示,所述装置还包括:
第一检测单元35,用于在所述存储单元34将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
所述爬取单元31还用于当所述第一检测单元35的检测结果为含有其他URL时,利用所述无界面浏览器爬取所述其他URL的网页内容。
可选的,如图4所示,所述装置还包括:
第二检测单元36,用于在所述存储单元34将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
放弃单元37,用于当所述第二检测单元36的检测结果为含有所述待爬取的URL时,放弃爬取所述待爬取的URL的网页内容;
所述爬取单元31还用于当所述第二检测单元36的检测结果为没有所述待爬取的URL时,利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
可选的,如图4所示,所述装置还包括:
导出单元38,用于在所述存储单元34将解析出的除所述特征信息之外的数据进行存储之后,将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
获得网页爬取日志后,可以利用扫描引擎对网页爬取日志进行扫描,以检测网页爬取日志对应的网页是否安全。
可选的,所述无界面浏览器为phantom JS浏览器。
本发明实施例提供的爬取动态网页的装置,能够利用无界面浏览器爬取网页内容,并且在利用解析引擎对爬取的网页内容进行解析时,不仅解析网页内容中是否含有其他URL、文件等,还会解析网页内容中是否含有触发加密动态数据的特征信息,由此当含有这些特征信息时,通过无界面浏览器的模拟点击事件接口模拟用户基于网页的点击操作,从而触发这些特征信息对应的点击事件,使得无界面浏览器可以加载点击事件产生的动态数据,进而能够爬取动态网页中的动态数据,提高了爬虫爬取网页数据的完整性。在爬取第一层动态数据后,通过继续解析爬取的动态数据的方式来检测第一层动态数据中是否还有第二层动态数据,若含有第二层动态数据,则继续进行解析,直至爬取一个网页的所有动态数据。此外,在解析出链接后,还继续爬取链接所属网页。由此可知,本发明实施例可以爬取网站中所有的网页数据,能够进一步提高爬虫爬取网页数据的完整性。
本发明实施例还提供了:
A1、一种爬取动态网页的方法,所述方法包括:
在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
利用解析引擎对爬取的网页内容进行解析;
若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
爬取所述点击事件产生的动态数据。
A2、根据A1所述的方法,在爬取所述点击事件产生的动态数据之后,所述方法还包括:
利用解析引擎对所述动态数据进行解析;
若所述动态数据中含有特征信息,则继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
A3、根据A2所述的方法,在利用解析引擎对爬取的网页内容进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
在利用解析引擎对所述动态数据进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据进行存储。
A4、根据A3所述的方法,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
若含有其他URL,则利用所述无界面浏览器爬取所述其他URL的网页内容。
A5、根据A3所述的方法,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
若含有所述待爬取的URL,则放弃爬取所述待爬取的URL的网页内容;
若没有所述待爬取的URL,则利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
A6、根据A3所述的方法,在将解析出的除所述特征信息之外的数据进行存储之后,所述方法还包括:
将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
A7、根据A1至A6中任一项所述的方法,所述无界面浏览器为phantom JS浏览器。
B8、一种爬取动态网页的装置,所述装置包括:
爬取单元,用于在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
解析单元,用于利用解析引擎对所述爬取单元爬取的网页内容进行解析;
触发单元,用于当所述解析单元的解析结果为所述网页内容中含有触发加载动态数据的特征信息时,通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
所述爬取单元还用于爬取所述触发单元触发的所述点击事件产生的动态数据。
B9、根据B8所述的装置,所述解析单元还用于在所述爬取单元爬取所述点击事件产生的动态数据之后,利用解析引擎对所述动态数据进行解析;
触发单元还用于当所述解析单元的解析结果为所述动态数据中含有特征信息时,继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
B10、根据B9所述的装置,所述装置还包括:
存储单元,用于在利用解析引擎对爬取的网页内容进行解析之后,将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
所述存储单元还用于在利用解析引擎对所述动态数据进行解析之后,将解析出的除所述特征信息之外的数据进行存储。
B11、根据B10所述的装置,所述装置还包括:
第一检测单元,用于在所述存储单元将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
所述爬取单元还用于当所述第一检测单元的检测结果为含有其他URL时,利用所述无界面浏览器爬取所述其他URL的网页内容。
B12、根据B10所述的装置,所述装置还包括:
第二检测单元,用于在所述存储单元将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
放弃单元,用于当所述第二检测单元的检测结果为含有所述待爬取的URL时,放弃爬取所述待爬取的URL的网页内容;
所述爬取单元还用于当所述第二检测单元的检测结果为没有所述待爬取的URL时,利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
B13、根据B10所述的装置,所述装置还包括:
导出单元,用于在所述存储单元将解析出的除所述特征信息之外的数据进行存储之后,将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
B14、根据B8至B13中任一项所述的装置,所述无界面浏览器为phantom JS浏览器。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的爬取动态网页的方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种爬取动态网页的方法,其特征在于,所述方法包括:
在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
利用解析引擎对爬取的网页内容进行解析;
若所述网页内容中含有触发加载动态数据的特征信息,则通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
爬取所述点击事件产生的动态数据。
2.根据权利要求1所述的方法,其特征在于,在爬取所述点击事件产生的动态数据之后,所述方法还包括:
利用解析引擎对所述动态数据进行解析;
若所述动态数据中含有特征信息,则继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
3.根据权利要求2所述的方法,其特征在于,在利用解析引擎对爬取的网页内容进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
在利用解析引擎对所述动态数据进行解析之后,所述方法还包括:
将解析出的除所述特征信息之外的数据进行存储。
4.根据权利要求3所述的方法,其特征在于,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
检测所述解析出的除所述特征信息之外的数据中是否含有其他URL;
若含有其他URL,则利用所述无界面浏览器爬取所述其他URL的网页内容。
5.根据权利要求3所述的方法,其特征在于,在将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储之后,所述方法还包括:
在后续爬取URL的网页内容之前,检测存储的已爬URL中是否含有待爬取的URL;
若含有所述待爬取的URL,则放弃爬取所述待爬取的URL的网页内容;
若没有所述待爬取的URL,则利用所述无界面浏览器爬取所述待爬取的URL的网页内容。
6.根据权利要求3所述的方法,其特征在于,在将解析出的除所述特征信息之外的数据进行存储之后,所述方法还包括:
将所述解析出的除所述特征信息之外的数据以日志格式进行导出,获得网页爬取日志。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述无界面浏览器为phantomJS浏览器。
8.一种爬取动态网页的装置,其特征在于,所述装置包括:
爬取单元,用于在获取需要爬取的网页的统一资源定位符URL之后,利用无界面浏览器爬取获取的URL的网页内容;
解析单元,用于利用解析引擎对所述爬取单元爬取的网页内容进行解析;
触发单元,用于当所述解析单元的解析结果为所述网页内容中含有触发加载动态数据的特征信息时,通过所述无界面浏览器的模拟点击事件接口触发所述特征信息对应的点击事件;
所述爬取单元还用于爬取所述触发单元触发的所述点击事件产生的动态数据。
9.根据权利要求8所述的装置,其特征在于,所述解析单元还用于在所述爬取单元爬取所述点击事件产生的动态数据之后,利用解析引擎对所述动态数据进行解析;
触发单元还用于当所述解析单元的解析结果为所述动态数据中含有特征信息时,继续通过所述模拟点击事件接口触发所述特征信息对应的点击事件。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
存储单元,用于在利用解析引擎对爬取的网页内容进行解析之后,将解析出的除所述特征信息之外的数据以及当前爬取的URL进行存储;
所述存储单元还用于在利用解析引擎对所述动态数据进行解析之后,将解析出的除所述特征信息之外的数据进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209352.3A CN106844486A (zh) | 2016-12-23 | 2016-12-23 | 爬取动态网页的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611209352.3A CN106844486A (zh) | 2016-12-23 | 2016-12-23 | 爬取动态网页的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844486A true CN106844486A (zh) | 2017-06-13 |
Family
ID=59136706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611209352.3A Pending CN106844486A (zh) | 2016-12-23 | 2016-12-23 | 爬取动态网页的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844486A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491301A (zh) * | 2017-07-27 | 2017-12-19 | 北京奇安信科技有限公司 | 动态界面处理方法及装置 |
CN108304498A (zh) * | 2018-01-12 | 2018-07-20 | 深圳壹账通智能科技有限公司 | 网页数据采集方法、装置、计算机设备和存储介质 |
CN109101600A (zh) * | 2018-08-01 | 2018-12-28 | 沈文策 | 一种网页中动态数据的爬取方法及装置 |
CN109446392A (zh) * | 2018-09-03 | 2019-03-08 | 中新网络信息安全股份有限公司 | 一种基于无界面浏览器和可配置代理拦截的网页抓取系统及抓取方法 |
CN109815385A (zh) * | 2019-01-31 | 2019-05-28 | 无锡火球普惠信息科技有限公司 | 基于app客户端的爬虫及爬取方法 |
CN109902220A (zh) * | 2019-02-27 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 网页信息获取方法、装置和计算机可读存储介质 |
CN110020073A (zh) * | 2017-10-12 | 2019-07-16 | 北京国双科技有限公司 | 一种直播网页爬取方法及装置 |
CN110069684A (zh) * | 2017-09-30 | 2019-07-30 | 北京国双科技有限公司 | 一种数据爬取方法、装置、存储介质及处理器 |
CN110874427A (zh) * | 2018-09-03 | 2020-03-10 | 菜鸟智能物流控股有限公司 | 网页信息爬取方法、装置、系统以及电子设备 |
CN114154272A (zh) * | 2021-12-24 | 2022-03-08 | 广州涂涂乐科技有限公司 | 一种应用于喷胶设备的自动清洁控制方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880607A (zh) * | 2011-07-15 | 2013-01-16 | 舆情(香港)有限公司 | 网络动态内容抓取方法及网络动态内容爬虫系统 |
US20130066848A1 (en) * | 2004-11-22 | 2013-03-14 | Timothy D. Tuttle | Method and Apparatus for an Application Crawler |
CN104408204A (zh) * | 2014-12-18 | 2015-03-11 | 北京国双科技有限公司 | 网页页面链接地址的获取方法和装置 |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和系统 |
CN106126693A (zh) * | 2016-06-29 | 2016-11-16 | 微梦创科网络科技(中国)有限公司 | 一种网页的相关数据的发送方法及装置 |
-
2016
- 2016-12-23 CN CN201611209352.3A patent/CN106844486A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130066848A1 (en) * | 2004-11-22 | 2013-03-14 | Timothy D. Tuttle | Method and Apparatus for an Application Crawler |
CN102880607A (zh) * | 2011-07-15 | 2013-01-16 | 舆情(香港)有限公司 | 网络动态内容抓取方法及网络动态内容爬虫系统 |
CN104408204A (zh) * | 2014-12-18 | 2015-03-11 | 北京国双科技有限公司 | 网页页面链接地址的获取方法和装置 |
CN106126693A (zh) * | 2016-06-29 | 2016-11-16 | 微梦创科网络科技(中国)有限公司 | 一种网页的相关数据的发送方法及装置 |
CN106096056A (zh) * | 2016-06-30 | 2016-11-09 | 西南石油大学 | 一种基于分布式的舆情数据实时采集方法和系统 |
Non-Patent Citations (1)
Title |
---|
张洪庆: ""支持动态页面的快速URL提取方法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491301A (zh) * | 2017-07-27 | 2017-12-19 | 北京奇安信科技有限公司 | 动态界面处理方法及装置 |
CN110069684A (zh) * | 2017-09-30 | 2019-07-30 | 北京国双科技有限公司 | 一种数据爬取方法、装置、存储介质及处理器 |
CN110020073A (zh) * | 2017-10-12 | 2019-07-16 | 北京国双科技有限公司 | 一种直播网页爬取方法及装置 |
CN110020073B (zh) * | 2017-10-12 | 2021-04-27 | 北京国双科技有限公司 | 一种直播网页爬取方法及装置 |
CN108304498B (zh) * | 2018-01-12 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 网页数据采集方法、装置、计算机设备和存储介质 |
CN108304498A (zh) * | 2018-01-12 | 2018-07-20 | 深圳壹账通智能科技有限公司 | 网页数据采集方法、装置、计算机设备和存储介质 |
CN109101600A (zh) * | 2018-08-01 | 2018-12-28 | 沈文策 | 一种网页中动态数据的爬取方法及装置 |
CN109446392A (zh) * | 2018-09-03 | 2019-03-08 | 中新网络信息安全股份有限公司 | 一种基于无界面浏览器和可配置代理拦截的网页抓取系统及抓取方法 |
CN110874427A (zh) * | 2018-09-03 | 2020-03-10 | 菜鸟智能物流控股有限公司 | 网页信息爬取方法、装置、系统以及电子设备 |
CN109815385A (zh) * | 2019-01-31 | 2019-05-28 | 无锡火球普惠信息科技有限公司 | 基于app客户端的爬虫及爬取方法 |
CN109902220A (zh) * | 2019-02-27 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 网页信息获取方法、装置和计算机可读存储介质 |
CN109902220B (zh) * | 2019-02-27 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 网页信息获取方法、装置和计算机可读存储介质 |
CN114154272A (zh) * | 2021-12-24 | 2022-03-08 | 广州涂涂乐科技有限公司 | 一种应用于喷胶设备的自动清洁控制方法及系统 |
CN114154272B (zh) * | 2021-12-24 | 2022-06-21 | 广州涂涂乐科技有限公司 | 一种应用于喷胶设备的自动清洁控制方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844486A (zh) | 爬取动态网页的方法及装置 | |
US10362050B2 (en) | System and methods for scalably identifying and characterizing structural differences between document object models | |
CN109376291B (zh) | 一种基于网络爬虫的网站指纹信息扫描的方法及装置 | |
US9405833B2 (en) | Methods for analyzing dynamic web pages | |
US9203720B2 (en) | Monitoring the health of web page analytics code | |
US7584194B2 (en) | Method and apparatus for an application crawler | |
CN110069683B (zh) | 一种基于浏览器爬取数据的方法及装置 | |
CN109033195A (zh) | 网页信息的获取方法、获取设备及计算机可读介质 | |
CN104331369B (zh) | 基于浏览器的网页检测方法及装置、服务器 | |
US9870279B2 (en) | Analysis apparatus and analysis method | |
US20080320498A1 (en) | High Performance Script Behavior Detection Through Browser Shimming | |
JP6203374B2 (ja) | ウェブページ・スタイルアドレスの統合 | |
Roy Choudhary et al. | X-PERT: a web application testing tool for cross-browser inconsistency detection | |
CN104956362A (zh) | 分析web应用程序的结构 | |
US9690855B2 (en) | Method and system for searching for a web document | |
CN103617241B (zh) | 搜索信息处理方法、浏览器终端与服务器 | |
WO2018053863A1 (en) | Identifying video pages | |
US20050177597A1 (en) | System and method of exercising a browser | |
CN111090797B (zh) | 数据获取方法、装置、计算机设备和存储介质 | |
CN106598991A (zh) | 一种使用会话方式实现与网站交互表单自动提取的网络爬虫系统 | |
CN103544271B (zh) | 一种浏览器中加载图片处理窗口的方法和装置 | |
Wu et al. | Detect cross-browser issues for JavaScript-based Web applications based on record/replay | |
CN104407979A (zh) | 脚本检测方法和装置 | |
CN110764994A (zh) | 页面元素封装方法、装置、电子设备及存储介质 | |
CN110825976B (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 | ||
CB02 | Change of applicant information |
Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park) Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Applicant after: QAX Technology Group Inc. Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park) Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |