CN110020044A - 一种爬虫的爬取方法及装置 - Google Patents
一种爬虫的爬取方法及装置 Download PDFInfo
- Publication number
- CN110020044A CN110020044A CN201710867749.XA CN201710867749A CN110020044A CN 110020044 A CN110020044 A CN 110020044A CN 201710867749 A CN201710867749 A CN 201710867749A CN 110020044 A CN110020044 A CN 110020044A
- Authority
- CN
- China
- Prior art keywords
- page
- hyperlink
- jump request
- target pages
- hyperlink element
- 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
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/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链接。本发明主要用于爬取页面中超链接对应目标页面的URL链接。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种爬虫的爬取方法及装置。
背景技术
随着云计算和大数据技术的深入发展,网页上的大量结构化和非结构化的信息搜索与挖掘技术成为一个热点研究问题。在分析数据时往往会花费大量的时间和精力,在大数据时代,爬虫技术成为获取网络数据的重要方式。
爬虫技术通常是从一个或若干初始网页的URL链接开始,抓取初始网页中的内容,并抽取初始网页中的URL链接,在获取网页内容的过程中,不断从网页中抽取新的URL链接放入爬取队列,从而根据爬取队列中的URL链接来爬取其他网页中的内容。通过爬虫技术来爬取页面中的超链接也是一种常用的技术手段,目前对于页面中超链接目标的URL,如果用户选择了<a>标签中的内容,浏览器会尝试检索并显示href属性指定的URL链接所表示的文档,或者执行JavaScript表达式、方法和函数的列表,从而爬取到页面的超链接对应目标页面的URL链接。
但是随着页面复杂度的提升以及各种隐藏式的超链接出现,如按钮超链接、js跳转生成的超链接,使得爬虫在爬取的过程中很多隐藏的超链接对应目标页面的URL链接无法获取,也无法满足很多应用场景的数据需求,造成很多应用场景下信息的缺失。
发明内容
有鉴于此,本发明提供一种爬虫的爬取方法及装置,主要目的在于使得爬虫能够爬取到页面中各种隐藏的超链接元素对应目标页面的URL链接。
为了解决上述问题,本发明主要提供如下技术方案:
一方面,本发明实施例提供了一种爬虫的爬取方法,包括:
获取待爬取页面中的超链接元素;
当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;
从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
进一步地,所述获取待爬取页面中的超链接元素包括:
从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;
根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
进一步地,在所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据之前,所述方法还包括:
通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
如果是,发送所述超链接元素对应目标页面的跳转请求。
进一步地,所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据包括:
利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,所述预置网络监控器用于监控浏览器的应用程序编程接口中交互传输数据的内容;
当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据,所述交互传输数据中包括超链接元素对应目标页面的URL链接。
进一步地,所述从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接包括:
在浏览器的待爬取页面中嵌入数据爬取脚本;
利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的爬虫的爬取方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的爬虫的爬取方法。
另一方面,本发明实施例还提供了一种爬虫的爬取装置,包括:
获取单元,用于获取待爬取页面中的超链接元素;
拦截单元,用于当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;
爬取单元,用于从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
进一步地,所述获取单元包括:
查找模块,用于从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;
定位模块,用于根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
进一步地,所述装置还包括
模拟单元,用于通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
发送单元,用于如果检测所述待爬取页面中的超链接元素包含隐藏URL链接,发送所述超链接元素对应目标页面的跳转请求。
进一步地,所述拦截单元包括:
监控模块,用于利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,所述预置网络监控器用于监控浏览器的应用程序编程接口中交互传输数据的内容;
拦截模块,用于当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据,所述交互传输数据中包括超链接元素对应目标页面的URL链接。
进一步地,所述爬取单元包括:
嵌入模块,用于在浏览器的待爬取页面中嵌入数据爬取脚本;
爬取模块,用于利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种爬虫的爬取方法及装置,当预置网络监控器监控到超链接元素对应目标页面的跳转请求是,拦截跳转请求以及跳转请求所携带的数据,从而爬取到页面中超链接元素对应目标页面的URL链接。与现有技术中利用浏览器显示href属性指定的URL链接来对页面中超链接进行爬取的方法相比,现有的爬虫技术在超链接对应目标页面的URL链接的爬取过程中,无法爬取到各种隐藏的超链接对应目标页面的URL链接,本发明实施例通过预置网络监控器监控浏览器标签页面中是否产生超链接元素对应目标页面的跳转请求,能够在监控到跳转请求时拦截跳转请求以及跳转请求所携带的数据,进一步从跳转请求所携带的数据爬取超链接元素对应目标页面的URL链接,从而爬取到页面中各种隐藏超链接元素对应目标页面的URL链接。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种爬虫的爬取方法流程图;
图2为本发明实施例提供的另一种爬虫的爬取方法流程图;
图3为本发明实施例提供的一种爬虫的爬取装置的组成框图;
图4为本发明实施例提供的另一种爬虫的爬取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种爬虫的爬取方法,如图1所示,该方法通过预置网络监控器监控并拦截超链接元素对应目标页面的跳转请求以及调整请求所携带的数据,从而爬取到各种隐藏超链接元素对应目标页面的URL链接,对此本发明实施例提供以下具体步骤:
101、获取待爬取页面中的超链接元素。
超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。而在页面中用来表示超链接元素的可以是一段文本或者是一个图片等,当浏览者点击已经链接的文字后图片后,链接目标将显示在浏览器上,并根据目标的类型来打开或者运行。
在本发明实施例中,待爬取页面可以为在Chrome浏览器的标签页中打开新浪微博网页或者百度百科网页,该网页是一个包含超文本标记语言(Hyper Text MarkupLanguage,HTML)标签的纯文本文件,当在浏览器的标签页中打开一个网页时,浏览器(客户端侧)会向服务器发送所要访问的HTML文件的请求,服务器中存储网站所包含的全部HTML文件信息,在通过超文本传输协议(Hyper Text Transfer Protocol,HTTP)实现浏览器与网络服务器的信息交互过程中,服务器响应请求,并将请求所对应的HTML文件返回浏览器,通过浏览器加载,在浏览器的标签页中呈现该网页的内容信息。
对于本发明实施例,待爬取页面中呈现的内容信息基本可以包括标题、页眉页脚、主体内容、功能区、广告栏等区域,每个区域有相应的页面元素,主体内容是网页中比较重要的页面区域,一般均有图片和文档等页面元素构成,而不同图片以及文档等页面元素中都可以嵌入超链接,从而通过超链接元素可以将用户引向目标页面。
102、当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据。
其中,预置网络监控器用于监控浏览器应用程序编程接口(Application ProgramInterface,API)中交互传输的数据内容,这里的数据可以是浏览器在收集到用户在浏览器的操作行为数据,可以是浏览器根据用户指示发送或者接收到的数据,可以是超链接元素在跳转至目标页面过程中向目标页面对应服务器发送的数据,本发明实施例不进行限定。在本发明实施例中,可以利用JavaScript脚本语言编写网络监控器,将该网络监控器嵌入浏览器的标签页中,当浏览器的标签页中的超链接元素发送触发操作时,通过监控浏览器API,以实现监控浏览器与服务器之间的信息交互,并可以监控浏览器向服务器发送的跳转请求。
对于本发明实施例,在监控到浏览器向服务器发送的跳转请求后,由于该跳转请求用于请求从当前页面跳转至页面中超链接元素对应目标页面,并且携带有所要跳转的目标页面的URL链接而该目标页面的URL链接为所需要爬取的页面内容,因此,在监控到跳转请求时拦截该跳转请求以及该跳转请求所携带的数据,从而爬取到所需要的超链接元素对应目标页面的URL链接,进而爬取到更多应用场景下的页面内容。
103、从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
由于跳转请求中携带的数据包括跳转的目标页面的URL链接,进一步从拦截的跳转请求所携带的数据中爬取超链接元素对应目标页面的URL链接,从而爬取到更多页面的内容以及更多应用场景下的数据。
针对本发明的实施例提供的一种爬虫的爬取方法,当预置网络监控器监控到超链接元素对应目标页面的跳转请求是,拦截跳转请求以及跳转请求所携带的数据,从而爬取到页面中超链接元素对应目标页面的URL链接。与现有技术中利用浏览器显示href属性指定的URL链接来对页面中超链接进行爬取的方法相比,现有的爬虫技术在超链接对应目标页面的URL链接的爬取过程中,无法爬取到各种隐藏的超链接对应目标页面的URL链接,本发明实施例通过预置网络监控器监控浏览器标签页面中是否产生超链接元素对应目标页面的跳转请求,能够在监控到跳转请求时拦截跳转请求以及跳转请求所携带的数据,进一步从跳转请求所携带的数据爬取超链接元素对应目标页面的URL链接,从而爬取到页面中各种隐藏超链接元素对应目标页面的URL链接。
以下为了更加详细地说明本发明提出的一种爬虫的爬取方法,特别是针对当预置网络监控器监控到超链接元素对应目标页面的跳转请求时,拦截跳转请求以及跳转请求所携带的数据的步骤,本发明实施例还提供了另一种爬虫的爬取方法,如图2所示,该方法的具体的步骤包括:
201、从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息。
其中,元素的路径信息是指对于层叠样式表(Cascading Style Sheets,CSS)中存储的控制元素样式的CSS文件,并且每个CSS文件都描述元素在页面中的位置信息,当某个元素所对应的CSS文件存在多个时,即为在页面中呈现该元素的样式需要将元素的多个样式层叠,那么由多个CSS文件层叠所呈现的元素所在页面中的位置信息。
在本发明实施例中,元素路径配置文件中包含待爬取页面中所有元素的路径信息,包括但不局限于页面中的超链接元素,具体可以通过编写浏览器插件,并利用该浏览器插件加载规则文件中的元素路径信息,以生成元素路径配置文件。
需要说明的是,由于网站所对应的层叠式样表是在网站建设时所设置的网站布局规则,并且该层叠式样表中包含页面元素的路径信息,那么根据网站布局规则,元素所在页面中的位置信息是确定的,所以当根据配置文件中包含的元素路径信息,爬取网页中的内容时,能够实现爬取页面中元素所在位置所对应的数据内容。
202、根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
由于元素路径配置文件以CSS样式表的形式存储有页面元素在待爬取页面中的呈现样式,每个CSS文件都描述元素在待爬取页面中的位置信息,即元素的路径信息,当然这里的元素路径配置文件也包括页面中超链接元素对应的多个CSS文件,该CSS文件描述有超链接元素在待爬取页面中的位置信息,即超链接元素的路径信息,进一步根据超链接元素的路径信息定位到待爬取页面中的超链接元素。
203、通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
对于本发明实施例,当爬虫在爬取待爬取页面中的内容时,由于某些网站设计人员在页面开发时,并不会将URL链接直接显示在页面中,而是需要通过用户点击才能够实现目标页面的跳转,如用户点击某段文字或者用户点击某个按钮、图片等,这就使得页面中的元素包含隐藏链接,导致爬虫无法获取到超链接元素对应目标页面的URL链接,而隐藏URL链接只有在触发用户行为操作时才会实现目标页面的跳转,所以本发明实施例通过模拟用户点击超链接元素的操作来检测待爬取页面中超链接元素是否包含隐藏URL链接。
204、如果是,发送所述超链接元素对应目标页面的跳转请求。
如果待爬取页面中的超链接元素包含隐藏URL链接,则在用户点击超链接元素后,会发送超链接元素对应目标页面的跳转请求,从而获取到超链接元素对应目标页面的URL链接。
205、利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应。
其中,预置网络监控器用于监控浏览器的应用程序编程接口中交互传输的数据内容,这里的数据可以是浏览器在收集到用户在浏览器的操作行为数据,可以是浏览器根据用户指示发送或者接收到的数据,可以是超链接元素在跳转至目标页面过程中向目标页面对应服务器发送的数据,本发明实施例不进行限定,对于本发明实施例,当浏览器的标签页中的超链接元素发送触发操作时,通过预置网络监控器监控浏览器API,以实现监控浏览器与服务器之间的信息交互,并可以监控浏览器向服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应。
由于待爬取页面中会有很多页面元素,通过爬虫技术来爬取页面内容的过程中,页面中的超链接元素可能包含隐藏链接,如按钮超链接或者js跳转的超链接,使得爬虫无法爬取到超链接元素对应目标页面的URL链接,对于本发明实施例,通过预置网络监控器监控超链接元素是否发生触发操作,如果发生出发操作浏览器必然会向相应服务器发送跳转请求,在发送跳转请求的过程中,拦截该跳转请求以及跳转请求所携带的交互数据,保证页面不发生跳转,从而能够爬取到隐藏的超链接元素对应目标页面的URL链接。
206、当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据。
在本发明实施例中,利用预置网络监控器所具有监控浏览器的应用程序编程接口中交互传输的数据内容的用途,当监控到浏览器向对应的服务器发送的页面跳转请求,由于交互传输数据中包括超链接元素对应目标页面的URL链接,拦截该跳转请求以及跳转请求所携带的交互传输数据,
本发明实施例通过在监控到待爬取页面由于点击发生跳转请求时,拦截跳转请求并获取跳转请求所携带的交互数据,进而爬取到跳转请求所携带的交互数据,从而获取到跳转行为对应目标页面的URL链接。
需要说明的是,这里对跳转请求进行拦截后,待爬取页面不会发生跳转行为,目的是截获该跳转请求所携带的交互数据,进而获取到超链接对应目标页面的数据信息,如页面名称、页面URL链接以及页面关键字等。
207、在浏览器的待爬取页面中嵌入数据爬取脚本。
其中,数据爬取脚本是指利用JavaScript脚本语言编写的脚本文件,用于根据网站所对应的层叠样式表(Cascading Style Sheets),CSS)中包含的元素路径信息爬取网页中的内容信息。
对于本发明实施例,通过浏览器接口在待爬取页面中嵌入数据爬取脚本,进而通过数据爬取脚本对待爬取页面中的内容进行抓取,当然抓取的内容可以包括预置网络监控器从跳转请求中拦截的数据。
208、利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
由于跳转请求中携带的交互传输数据包括跳转的目标页面的URL链接,进一步从拦截的跳转请求所携带的交互传输数据中爬取超链接元素对应目标页面的URL链接,从而爬取到更多页面的内容以及更多应用场景下的数据。
对于本发明实施例,具体的应用场景可以包括但不局限于下述实现方式,首先从待爬取页面对应的规则文件中查找到待爬取页面中有4个超链接元素对应的元素路径配置文件,得到这4个超链接在待爬取页面中对应的路径信息,其中有2个是隐藏的按钮超链接,1个是隐藏的js跳转超链接,1个是图片跳转超链接,然后根据元素路径配置文件中4个超链接元素对应的路径信息定位到超链接元素,由于如果待爬取页面中存在隐藏的超链接时,若没有触发跳转操作爬虫无法直接爬取到超链接元素对应页面的URL链接,所以在爬虫爬取之前,检测爬取页面中的超链接元素是否包含隐藏URL链接,检测到包含3个隐藏URL链接,需要模拟用户执行操作发送超链接元素对应目标页面的跳转请求,从而在浏览器向对应服务器发送跳转请求过程中会携带请求跳转目标页面的信息,利用预置网络监控器监控浏览器向其对应服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,如果监控到跳转请求,则拦截该跳转请求以及该跳转请求所携带的交互传输数据,并通过浏览器中嵌入的爬取脚本文件从交互传输数据中爬取超链接对应目标页面的URL链接,而对于超链接元素并非隐藏URL链接时,无需触发跳转行为通过数据爬取脚本也可以直接从待爬取页面中爬取到超链接元素对应目标页面的URL链接,进而爬取到页面中各种隐藏以及非隐藏超链接对应目标页面的URL链接。
针对本发明实施例提供的另一种爬虫的爬取方法,当预置网络监控器监控到超链接元素对应目标页面的跳转请求是,拦截跳转请求以及跳转请求所携带的数据,从而爬取到页面中超链接元素对应目标页面的URL链接。与现有技术中利用浏览器显示href属性指定的URL链接来对页面中超链接进行爬取的方法相比,现有的爬虫技术在超链接对应目标页面的URL链接的爬取过程中,无法爬取到各种隐藏的超链接对应目标页面的URL链接,本发明实施例通过预置网络监控器监控浏览器标签页面中是否产生超链接元素对应目标页面的跳转请求,能够在监控到跳转请求时拦截跳转请求以及跳转请求所携带的数据,进一步从跳转请求所携带的数据爬取超链接元素对应目标页面的URL链接,从而爬取到页面中各种隐藏超链接元素对应目标页面的URL链接。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的爬虫的爬取方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的爬虫的爬取方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种爬虫的爬取装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置使得爬虫能够爬取到页面中各种隐藏的超链接元素对应目标页面的URL链接,具体如图3所示,该装置包括:
获取单元31,可以用于获取待爬取页面中的超链接元素;
拦截单元32,可以用于当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;
爬取单元33,可以用于从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
针对本发明的实施例提供了一种爬虫的爬取装置,获取待爬取页面中的超链接元素。
进一步地,如图4所示,所述装置还包括:
模拟单元34,可以用于通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
发送单元35,可以用于如果所述待爬取页面中的超链接元素包含隐藏URL链接,发送所述超链接元素对应目标页面的跳转请求。
进一步地,所述获取单元31包括:
查找模块311,可以用于从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;
定位模块312,可以用于根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
进一步地,所述拦截单元32包括:
监控模块321,可以用于利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,所述预置网络监控器用于监控浏览器的应用程序编程接口中交互传输数据的内容;
拦截模块322,可以用于当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据,所述交互传输数据中包括超链接元素对应目标页面的URL链接。
进一步地,所述爬取单元33包括:
嵌入模块331,可以用于在浏览器的待爬取页面中嵌入数据爬取脚本;
爬取模块332,可以用于利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
针对本发明实施例提供的另一种爬虫的爬取装置,获取待爬取页面中的超链接元素。
所述爬虫的爬取装置包括处理器和存储器,上述获取单元31、拦截单元32和爬取单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使得爬虫能够爬取到页面中各种隐藏的超链接元素对应目标页面的URL链接。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述爬虫的爬取方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述爬虫的爬取方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
一种爬虫的爬取方法,包括:获取待爬取页面中的超链接元素;当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
进一步地,所述获取待爬取页面中的超链接元素包括:从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
进一步地,在所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据之前,所述方法还包括:通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;如果是,发送所述超链接元素对应目标页面的跳转请求。
进一步地,所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据包括:利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,所述预置网络监控器用于监控浏览器的应用程序编程接口中交互传输数据的内容;当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据,所述交互传输数据中包括超链接元素对应目标页面的URL链接。
进一步地,所述从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接包括:在浏览器的待爬取页面中嵌入数据爬取脚本;利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取待爬取页面中的超链接元素;当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种爬虫的爬取方法,其特征在于,包括:
获取待爬取页面中的超链接元素;
当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;
从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
2.根据权利要求1所述的方法,其特征在于,所述获取待爬取页面中的超链接元素包括:
从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;
根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
3.根据权利要求1所述的方法,其特征在于,在所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据之前,所述方法还包括:
通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
如果是,发送所述超链接元素对应目标页面的跳转请求。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据包括:
利用预置网络监控器监控浏览器向其对应的服务器发送的跳转请求以及对应的服务器向浏览器发送的跳转请求响应,所述预置网络监控器用于监控浏览器的应用程序编程接口中交互传输数据的内容;
当所述预置网络监控器监控到所述浏览器向其对应的服务器发送的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的交互传输数据,所述交互传输数据中包括超链接元素对应目标页面的URL链接。
5.根据权利要求4所述的方法,其特征在于,所述从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接包括:
在浏览器的待爬取页面中嵌入数据爬取脚本;
利用所述数据爬取脚本从拦截的跳转请求所携带的交互传输数据中爬取所述超链接元素对应目标页面的URL链接。
6.一种爬虫的爬取装置,其特征在于,包括:
获取单元,用于获取待爬取页面中的超链接元素;
拦截单元,用于当预置网络监控器监控到所述超链接元素对应目标页面的跳转请求时,拦截所述跳转请求以及所述跳转请求所携带的数据;
爬取单元,用于从拦截的跳转请求所携带的数据中爬取所述超链接元素对应目标页面的URL链接。
7.根据权利要求6所述的装置,其特征在于,所述获取单元包括:
查找模块,用于从待爬取页面对应的元素路径配置文件中查找所述待爬取页面中超链接元素对应的路径信息,所述元素路径配置文件中包含所述待爬取页面中所有元素的路径信息;
定位模块,用于根据所述超链接元素对应的路径信息定位到所述待爬取页面中的超链接元素。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括
模拟单元,用于通过模拟用户点击所述超链接元素的操作,检测所述待爬取页面中的超链接元素是否包含隐藏URL链接;
发送单元,用于如果检测所述待爬取页面中的超链接元素包含隐藏URL链接,发送所述超链接元素对应目标页面的跳转请求。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的爬虫的爬取方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的爬虫的爬取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867749.XA CN110020044A (zh) | 2017-09-22 | 2017-09-22 | 一种爬虫的爬取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867749.XA CN110020044A (zh) | 2017-09-22 | 2017-09-22 | 一种爬虫的爬取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110020044A true CN110020044A (zh) | 2019-07-16 |
Family
ID=67186350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710867749.XA Pending CN110020044A (zh) | 2017-09-22 | 2017-09-22 | 一种爬虫的爬取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020044A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750701A (zh) * | 2019-10-29 | 2020-02-04 | 百卓网络科技有限公司 | 一种基于爬虫的网络推广效果评估方法 |
CN111931024A (zh) * | 2020-07-10 | 2020-11-13 | 北京邮电大学 | 一种针对动态网页的爬取方法、装置及电子设备 |
CN112417252A (zh) * | 2020-12-04 | 2021-02-26 | 天津开心生活科技有限公司 | 爬虫路径确定方法、装置、存储介质与电子设备 |
CN112579947A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 网页元素图的截取方法、装置及电子设备 |
CN112632361A (zh) * | 2020-12-29 | 2021-04-09 | 中科院计算技术研究所大数据研究院 | 迭代式数据获取方法 |
CN112948654A (zh) * | 2019-11-26 | 2021-06-11 | 上海哔哩哔哩科技有限公司 | 网页爬取方法、装置以及计算机设备 |
CN113254749A (zh) * | 2021-06-10 | 2021-08-13 | 山东浪潮通软信息科技有限公司 | 一种基于http协议的数据爬取方法及装置 |
CN113807880A (zh) * | 2021-04-21 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 用于数据监测的方法、装置、电子设备及存储介质 |
CN116599877A (zh) * | 2023-07-19 | 2023-08-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120143844A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Multi-level coverage for crawling selection |
CN104408204A (zh) * | 2014-12-18 | 2015-03-11 | 北京国双科技有限公司 | 网页页面链接地址的获取方法和装置 |
CN106407219A (zh) * | 2015-07-31 | 2017-02-15 | 北京国双科技有限公司 | 网页链接的爬取方法及装置 |
-
2017
- 2017-09-22 CN CN201710867749.XA patent/CN110020044A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120143844A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Multi-level coverage for crawling selection |
CN104408204A (zh) * | 2014-12-18 | 2015-03-11 | 北京国双科技有限公司 | 网页页面链接地址的获取方法和装置 |
CN106407219A (zh) * | 2015-07-31 | 2017-02-15 | 北京国双科技有限公司 | 网页链接的爬取方法及装置 |
Non-Patent Citations (1)
Title |
---|
WOSHINIA: "JavaScript与CSS — 元素的位置和各种坐标系", 《HTTPS://BLOG.CSDN.NET/WOSHINIA/ARTICLE/DETAILS/20917549》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579947A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 网页元素图的截取方法、装置及电子设备 |
CN110750701B (zh) * | 2019-10-29 | 2022-07-05 | 百卓网络科技有限公司 | 一种基于爬虫的网络推广效果评估方法 |
CN110750701A (zh) * | 2019-10-29 | 2020-02-04 | 百卓网络科技有限公司 | 一种基于爬虫的网络推广效果评估方法 |
CN112948654A (zh) * | 2019-11-26 | 2021-06-11 | 上海哔哩哔哩科技有限公司 | 网页爬取方法、装置以及计算机设备 |
CN111931024A (zh) * | 2020-07-10 | 2020-11-13 | 北京邮电大学 | 一种针对动态网页的爬取方法、装置及电子设备 |
CN112417252A (zh) * | 2020-12-04 | 2021-02-26 | 天津开心生活科技有限公司 | 爬虫路径确定方法、装置、存储介质与电子设备 |
CN112417252B (zh) * | 2020-12-04 | 2023-05-09 | 天津开心生活科技有限公司 | 爬虫路径确定方法、装置、存储介质与电子设备 |
CN112632361A (zh) * | 2020-12-29 | 2021-04-09 | 中科院计算技术研究所大数据研究院 | 迭代式数据获取方法 |
CN112632361B (zh) * | 2020-12-29 | 2021-10-29 | 中科院计算技术研究所大数据研究院 | 迭代式数据获取方法 |
CN113807880A (zh) * | 2021-04-21 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 用于数据监测的方法、装置、电子设备及存储介质 |
CN113254749A (zh) * | 2021-06-10 | 2021-08-13 | 山东浪潮通软信息科技有限公司 | 一种基于http协议的数据爬取方法及装置 |
CN113254749B (zh) * | 2021-06-10 | 2022-08-23 | 浪潮通用软件有限公司 | 一种基于http协议的数据爬取方法及装置 |
CN116599877A (zh) * | 2023-07-19 | 2023-08-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
CN116599877B (zh) * | 2023-07-19 | 2023-09-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020044A (zh) | 一种爬虫的爬取方法及装置 | |
US20190043062A1 (en) | Measuring quality of user interaction with third party content | |
CN110069683B (zh) | 一种基于浏览器爬取数据的方法及装置 | |
CN103678321B (zh) | 页面元素确定方法及设备、用户行为路径确定方法及装置 | |
EP2433258B1 (en) | Protected serving of electronic content | |
KR101311126B1 (ko) | 클릭 가능한 비디오 하이퍼링크 | |
CN111177519B (zh) | 网页内容获取方法、装置、存储介质及设备 | |
US9690855B2 (en) | Method and system for searching for a web document | |
US9830304B1 (en) | Systems and methods for integrating dynamic content into electronic media | |
US20140258372A1 (en) | Systems and Methods for Categorizing and Measuring Engagement with Content | |
CN106899549A (zh) | 一种网络安全检测方法及装置 | |
US20120198361A1 (en) | Method and System for Seamless Navigation and Drill Back Among a Plurality of Web Applications | |
CN107147645B (zh) | 网络安全数据的获取方法及装置 | |
CN110020339A (zh) | 基于无埋点的网页数据采集方法及装置 | |
CN109948074A (zh) | 网站数据对接方法、装置、存储介质、处理器及电子设备 | |
KR20160018770A (ko) | 내장가능형 미디어 콘텐츠 검색 위젯 | |
Mehta et al. | A comparative study of various approaches to adaptive web scraping | |
CN105183453B (zh) | 基于网页的信息获取方法及装置 | |
US20210334318A1 (en) | Mechanism for Web Crawling E-Commerce Resource Pages | |
CN109471639A (zh) | 一种应用下载来源的监测方法及装置 | |
WO2013097561A9 (en) | Scenario-based crawling | |
Zahoor et al. | A framework to infer webpage relevancy for a user | |
Zahoor et al. | Uniqueness in user behavior while using the web | |
CN104407979A (zh) | 脚本检测方法和装置 | |
Phan | Building application powered by web scraping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. |
|
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: 20190716 |