CN111177519A - 网页内容获取方法、装置、存储介质及设备 - Google Patents
网页内容获取方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN111177519A CN111177519A CN201911401555.6A CN201911401555A CN111177519A CN 111177519 A CN111177519 A CN 111177519A CN 201911401555 A CN201911401555 A CN 201911401555A CN 111177519 A CN111177519 A CN 111177519A
- Authority
- CN
- China
- Prior art keywords
- target
- source file
- video
- preset
- network request
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000011068 loading method Methods 0.000 claims abstract description 30
- 238000005516 engineering process Methods 0.000 claims description 29
- 238000001914 filtration Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 239000002609 medium Substances 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241001101720 Murgantia histrionica Species 0.000 description 1
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- 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/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了网页内容获取方法、装置、存储介质及设备。其中,该方法包括:获取第一网络资源地址,并利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件,通过预设无头浏览器发送针对网页源文件中目标项目的目标网络请求,其中,目标项目通过动态加载方式生成,根据目标网络请求获取目标项目对应目标内容。本发明实施例提供的技术方案,可以利用无头浏览器来访问页面中的动态生成的项目,进而更加全面地获取网页内容。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及网页内容获取方法、装置、存储介质及设备。
背景技术
作为信息的重要传播载体,网络正以惊人的速度不断发展壮大。网络在拥有增长迅速及信息量庞大两大特点的同时,也拥有着动态性、开放性、互动性、以及匿名性等诸多特点,造成网络上存在很多包含了敏感或违规内容的网页。因此,研究和开发与网络相适应的自动识别与过滤技术,对网络上日益泛滥的敏感信息进行有效的技术检测和过滤已经成为网络信息安全中的一项重要研究课题。
网页识别方法的前提便是获取网页中包含的文本、图像以及视频等内容。目前,相关技术仅能够获取静态网页中的内容,而鉴于动态页面的普及与相对于静态页面的优势,现今很多网站都有使用到动态加载技术,因此,现有的网页内容获取方案所获取的内容不够全面,需要改进。
发明内容
本发明实施例提供了网页内容获取方法、装置、设备和存储介质,可以优化现有的网页内容获取方案。
第一方面,本发明实施例提供了一种网页内容获取方法,该方法包括:
获取第一网络资源地址,并利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件;
通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成;
根据所述目标网络请求获取所述目标项目对应目标内容。
第二方面,本发明实施例提供了一种网页内容获取装置,该装置包括:
网页源文件获取模块,用于获取第一网络资源地址,利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件;
网络请求发送模块,用于通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成;
目标内容获取模块,用于根据所述目标网络请求获取所述目标项目对应目标内容。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的网页内容获取方法。
第四方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的网页内容获取方法。
本发明实施例中提供的网页内容获取方案,获取第一网络资源地址,并利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件,通过预设无头浏览器发送针对网页源文件中目标项目的目标网络请求,其中,目标项目通过动态加载方式生成,根据目标网络请求获取所述目标项目对应目标内容。通过采用上述技术方案,可以利用无头浏览器来访问页面中的动态生成的项目,进而更加全面地获取网页内容。
附图说明
图1为本发明实施例提供的一种网页内容获取方法的流程示意图;
图2为本发明实施例提供的一种网络请求截获过程示意图;
图3为本发明实施例提供的又一种网页内容获取方法的流程示意图;
图4为本发明实施例提供的另一种网页内容获取方法的流程示意图;
图5为本发明实施例提供的再一种网页内容获取方法的流程示意图;
图6为本发明实施例提供的一种网页内容获取装置的结构框图;
图7为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明实施例提供的一种网页内容获取方法的流程示意图,该方法可以由网页内容获取装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图1所示,该方法包括:
步骤101、获取第一网络资源地址,并利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件。
示例性的,网络资源地址可以用于表示从网络中获取到相应资源的位置和访问方法,一般可以用统一资源定位符(Uniform Resource Locator,URL)表示。第一网络资源地址可以是任意一个需要进行网络内容获取的网络资源地址,具体可以根据用户的输入确定。例如,可以提供应用程序编程接口(Application Programming Interface,API),将用户输入的URL地址作为API的参数,然后返回网页内容获取结果。
可选的,所述利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件,包括:在确定所述第一网络资源地址合法的情况下,所述利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件。
目前,网页中的页面一般包括静态页面和动态页面。静态页面可指没有后台数据库、不含程序和不可交互的网页,通俗的来说,就是随着页面代码的生成,页面的内容和显示效果就基本上不会发生变化的页面。动态页面可指页面代码虽然没有变,但是显示的内容却可以随着时间、环境或者数据库操作的结果而发生改变的页面。在动态页面中,一般可以包含通过动态加载方式生成的图片以及视频等。
无头浏览器(Headless Browser)是没有图形用户界面(GUI)的web浏览器,通常是通过编程或命令行界面来控制,可以实现用户的行为。本发明实施例通过预设无头浏览器来实现网页中动态内容的获取。
示例性的,所述利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件,包括:利用预设无头浏览器根据所述第一网络资源地址确定对应的服务端,与所述服务端建立通信连接,并从所述服务端获取所述第一网络资源地址对应的网页源文件。可选的,预设无头浏览器与服务端(也即第一网络资源地址所属网站的服务器)之间可以通过建立传输控制协议(Transmission Control Protocol,TCP)连接以超文本传输协议(HyperText Transfer Protocol,HTTP)进行通信。
示例性的,可建立与网站服务端的HTTP连接会话连接(CONNECTION),并借助浏览器驱动(Browser driver)利用预设无头浏览器向服务端发送网络请求,获取服务端返回的响应,预设无头浏览器加载页面,继而获取网页源文件。一般的,构成网页文档的主要语言为超文本标记语言(Hyper Text Markup Language,HTML),又称超文本链接标识语言,所述网页源文件例如可以是HTML源文件。
可选的,在获取到网页源文件之后,还可针对网页源文件进行标签过滤处理,以过滤掉干扰后续流程的标签,如script标签和style标签等。一般的,标签过滤处理中所过滤的标签一般为与页面内容无关的标签。
步骤102、通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成。
本发明实施例中采用无头浏览器的优势在于,无头浏览器可以获取通过Javascript(js)或其他方式动态渲染生成的HTML文件,例如包含弹框广告的页面文件,应用ajax无刷新加载数据技术的页面文件等等。无头浏览器可以配合浏览器自动化测试框架模拟用户的行为,例如在获取视频链接时,可以模拟点击视频播放键触发播放视频的请求。无头浏览器可以实现许多在浏览器中的配置,例如禁用弹框、禁用图片、执行自定义js脚本、证书验证以及截图等等。无头浏览器还具备一般网络请求库的所有的功能,例如设置User-Agent反爬、使用cookies登录状态、设置请求访问超时时间以及使用代理等等。利用上述优势,可以很好地模拟用户真实的浏览网页过程,从而获取到用户浏览网页过程中可视的网页内容。
在本步骤中,可以在通过预设无头浏览器加载页面的过程中,自动发送针对目标项目的目标网络请求,还可以配合浏览器自动化测试框架来模拟用户的行为来触发发送针对目标项目的目标网络请求。本发明实施例对于具体的浏览器自动化测试框架不做限定,例如可以是Selenium。
步骤103、根据所述目标网络请求获取所述目标项目对应目标内容。
示例性的,网络请求中一般可包含资源的请求链接,可以根据请求链接下载对应的资源,从而实现获取目标项目对应的目标内容。当目标项目包含动态加载方式生成的图片时,可以根据该图片对应的网络请求获取对应的图片内容;当目标项目包含动态加载方式生成的视频时,可以根据该视频对应的网络请求获取对应的视频内容。
本发明实施例中提供的网页内容获取方法,获取第一网络资源地址,并利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件,通过预设无头浏览器发送针对网页源文件中目标项目的目标网络请求,其中,目标项目通过动态加载方式生成,根据目标网络请求获取所述目标项目对应目标内容。通过采用上述技术方案,可以利用无头浏览器来访问页面中的动态生成的内容,进而更加全面地获取网页内容。
在一些实施例中,所述通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,包括:通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求,所述网络请求中包含针对所述网页源文件中目标项目的目标网络请求。相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:截获通过所述预设无头浏览器向所述服务端发送的网络请求;从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,并根据所述目标网络请求获取所述目标项目对应目标内容。这样设置的好处在于,可以通过截获预设无头浏览器向服务端发送的网络请求来准确地筛选出针对目标项目的网络请求。
示例性的,可以利用预先编写的网络代理抓包工具来实现网络请求的截取,也即利用网络代理抓包工具截获通过所述预设无头浏览器向所述服务端发送的网络请求。该网络代理抓包工具实现原理是以代理服务器的方式工作。代理相当于在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再充当客户端发送数据到服务器,同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。网络代理捉包工具工作于网络七层协议中的应用层,能够捕获到通过的HTTP请求或HTTPS请求。图2为本发明实施例提供的一种网络请求截获过程示意图,如图2所示,本发明实施例中预设无头浏览器(相当客户端)默认通过自己发送HTTP或者HTTPS请求(request)到服务端(Web server),代理服务器(Proxy)(相当于网络代理抓包工具)将截取到预设无头浏览器发送出去的所有网络请求,并有能力修改所有的请求细节并获取返回内容,即服务端返回的响应(response)。示例性的,网络代理捉包工具可以以HAR格式返回所截获的网络请求。其中,HAR(HTTP Archive,超文本传输协议获取),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON。这种格式的数据可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR的HTTP分析工具(例如Firebug、httpwatch以及Fiddler等)所使用。本发明实施例中,可以基于网络代理捉包工具返回的HAR数据过滤出针对所述网页源文件中目标项目的目标网络请求。
在一些实施例中,在根据所述目标网络请求获取所述目标项目对应目标内容之后,还可包括:将目标内容转换为预设格式的数据进行输出。其中,预设格式例如可包括json格式、excel格式或txt格式等。所输出的数据可以为鉴别涉黄涉赌等敏感网站的机器算法系统提供数据依据,以对网络上的信息进行有效的检测和过滤。
图3为本发明实施例提供的又一种网页内容获取方法的流程示意图,以目标项目包括图片为例进行说明。
示例性的,所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:从所截获的网络请求中过滤出包含预设图片格式信息的网络请求,得到针对所述网页源文件中的第一图片的目标图片网络请求,其中,所述第一图片通过动态加载方式生成。相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:根据所述目标图片网络请求获取所述第一图片的图片内容。这样设置的好处在于,能够准确地筛选出通过动态加载方式生成的图片对应的网络请求,并获取相应的图片内容。
可选的,该方法可包括:
步骤301、获取第一网络资源地址。
步骤302、利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件。
步骤303、通过预设无头浏览器基于网页源文件向第一网络资源地址对应的服务端发送相应的网络请求。
示例性的,对于一些网站中的图片,可能通过js动态加载生成,例如弹框广告中的图片,而为了更加全面地获取网页中的图片内容,也需要获取这样的图片的内容。对于这些通过动态加载方式生成的图片,需要获取图片的链接比较困难,在源代码中对应图片(img)标签的源(source,简称src)属性一般不是真正的图片链接,而可能是javascript:;等。而一些常规的页面定位技术,如HTML定位技术,是通过定位并获取图片标签的src属性的方式获取对应的图片内容的,src是<img>标签的必选属性,它的值是图像文件的URL,也就是引用该图像的文件的绝对路径或相对路径。因此,常规的页面定位技术无法获取到通过动态加载方式生成的图片的内容。
本发明实施例中,通过预设无头浏览器加载网页源文件对应的页面,因此向第一网络资源地址对应的服务端发送相应的网络请求中,会包含针对通过动态加载方式生成的图片的网络请求。
步骤304、截获通过预设无头浏览器向服务端发送的网络请求。
示例性的,可以通过上文所述的网络代理抓包工具对通过预设无头浏览器向服务端发送的所有网络请求进行拦截和获取。
步骤305、从所截获的网络请求中过滤出包含预设图片格式信息的网络请求,得到针对网页源文件中的第一图片的目标图片网络请求。
其中,所述第一图片通过动态加载方式生成。
示例性的,第一图片可以是网页源文件中包含的任意一个通过动态加载方式生成的图片。一般的,针对图片资源的网络请求中,会在后缀等位置包含图片格式信息,常见的图片格式有".jpg"、".png"、".webp"、".gif"、".jpeg"以及".bmp"等,可根据具体需求对预设图片格式信息进行设置。
步骤306、根据目标图片网络请求获取第一图片的图片内容。
示例性的,目标图片网络请求即为第一图片的请求链接,根据该请求链接可以获取到第一图片的图片内容。
本发明实施例提供的网页内容获取方法,截获通过预设无头浏览器向服务端发送的网络请求,并从中过滤出包含预设图片格式信息的网络请求,得到针对网页源文件中的第一图片的目标图片网络请求,进而获取对应的图片内容,可以实现快速准确地获取到通过动态加载方式生成的图片的内容。
在一些实施例中,还可包括:采用第一预设页面定位技术定位并获取所述网页源文件中的第二图片的图片标签的源属性,其中,所述第二图片包括静态生成的图片;根据所述图片标签的源属性获取所述第二图片的图片内容。这样设置的好处在于,可以更加全面地获取网页源文件中的图片内容。其中,第一预设页面定位技术可以根据实际需求进行选取。
图4为本发明实施例提供的另一种网页内容获取方法的流程示意图,以目标项目包括视频为例进行说明。
示例性的,所述通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求包括:通过所述预设无头浏览器触发播放所述网页源文件中的第一视频,以向所述服务端发送所述第一视频对应的网络请求。相应的,所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:从所截获的网络请求中过滤出包含预设视频格式信息的网络请求,得到针对所述第一视频的目标视频网络请求;所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:根据所述目标视频网络请求获取所述第一视频的视频内容。这样设置的好处在于,通过模拟用户触发播放网页源文件中的第一视频来实现向服务端发送对应的网络请求,进而准确地获取到通过动态加载方式生成的视频内容。
可选的,该方法可包括:
步骤401、获取第一网络资源地址。
步骤402、利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件。
步骤403、通过预设无头浏览器触发播放网页源文件中的第一视频,以向服务端发送第一视频对应的网络请求。
其中,所述第一视频通过动态加载方式生成,可以是网页源文件中包含的任意一个通过动态加载方式生成的视频。
示例性的,对于一些网站中的视频,视频链接并不存在于页面中,可能通过ajax技术以流形式推送,还可能通过js动态加载生成,可以触发js方法来生成这类视频的网络请求,常见的如点击播放按钮。本发明实施例可通过预设无头浏览器来触发播放网页源文件中的第一视频,以向服务端发送第一视频对应的网络请求。
可选的,通过所述预设无头浏览器调用浏览器自动化测试框架中提供的模拟点击方法,触发播放所述网页源文件中的第一视频。模拟点击方法例如可包括移动到元素(move_to_element)方法和点击(click)方法,通过调用这两个方法可以实现将鼠标移动到第一视频的播放按钮处,并点击播放按钮,从而实现代码中触发播放第一视频。
步骤404、截获通过预设无头浏览器向服务端发送的网络请求。
示例性的,可以通过上文所述的网络代理抓包工具对通过预设无头浏览器向服务端发送的所有网络请求进行拦截和获取。
步骤405、从所截获的网络请求中过滤出包含预设视频格式信息的网络请求,得到针对所述第一视频的目标视频网络请求。
一般的,针对视频资源的网络请求中,会在后缀等位置包含视频格式信息,常见的视频格式有".MP4"以及".m3u8"等,可根据具体需求对预设视频格式信息进行设置。
步骤406、根据目标视频网络请求获取所述第一视频的视频内容。
示例性的,目标视频网络请求即为第一视频的请求链接,根据该请求链接可以获取到第一视频的视频内容。
本发明实施例提供的网页内容获取方法,通过预设无头浏览器触发播放网页源文件中的第一视频,以向服务端发送第一视频对应的网络请求,截获通过预设无头浏览器向服务端发送的网络请求,并从中过滤出包含预设视频格式信息的网络请求,得到针对网页源文件中的第一视频的目标视频网络请求,进而获取对应的视频内容,可以实现快速准确地获取到通过动态加载方式生成的视频的内容。
在一些实施例中,还可包括:采用第二预设页面定位技术定位并获取所述网页源文件中的第二视频的视频(video)标签的源(src)属性,其中,所述第二视频包括静态生成的视频;根据所述视频标签的源属性获取所述第二视频的视频内容。这样设置的好处在于,可以更加全面地获取网页源文件中的视频内容。其中,第二预设页面定位技术可以根据实际需求进行选取。
在一些实施例中,还包括:采用第三预设页面定位技术定位并获取所述网页源文件中的第一内联框架(iframe)标签的源属性;根据所述第一内联框架标签的源属性获取相应的视频内容。其中,第三预设页面定位技术可以根据实际需求进行选取。iframe标签作为一种页面元素,会创建包含另外一个HTML页面的内容,相当于嵌套页面的作用。对于一个网页中的视频链接,可能存在于iframe标签的src属性中,因此,可以通过定位并获取第一iframe标签的源属性的方式得到对应的视频链接,进而获取相应的视频内容。
在一些实施例中,还可包括:通过所述预设无头浏览器对所述网页源文件中包含的第二内联框架标签进行页面切换处理,以获取到所述第二内联框架标签对应的子网页源文件;采用第四预设页面定位技术定位并获取所述子网页源文件中的子视频标签的源属性;根据所述子视频标签的源属性获取相应的视频内容。其中,第四预设页面定位技术可以根据实际需求进行选取。对于一个网页中的视频链接,可能存在于iframe标签里面的video标签的src属性中。而常规的页面定位技术只能定位当前页面的标签,并不支持iframe层页面的内容获取,因此,本发明实施例中可以通过预设无头浏览器对iframe标签进行页面切换处理,进而获取内嵌到iframe标签中的HTML源码,也即子页面源文件,并通过定位并获取子页面源文件中的子视频标签的源属性的方式得到对应的视频链接,进而获取相应的视频内容。
可选的,所述通过所述预设无头浏览器对所述网页源文件中包含的第一内联框架标签进行页面切换处理,以获取到所述第一内联框架标签对应的子网页源文件,包括:通过所述预设无头浏览器调用浏览器自动化测试框架中提供的内联框架层页面切换方法,获取到所述第一内联框架标签对应的子网页源文件。示例性的,内联框架层页面切换方法例如可以是切换至框架(switch_to_frame)方法,通过调用该方法,可以实现将第一内联框架标签里面内嵌的页面切换为当前页面,并获取其对应的网页源文件,即上述子网页源文件。
在一些实施例中,还可包括:采用第五预设页面定位技术定位并获取所述子网页源文件中的子内联框架标签的源属性;根据所述子内联框架标签的源属性获取相应的视频内容。其中,第五预设页面定位技术可以根据实际需求进行选取。对于一个网页中的视频链接,还可能存在于iframe标签里面的source标签的src属性中,也即存在于iframe标签中的子iframe标签的源属性,因此,可以通过定位并获取子iframe标签的源属性的方式得到对应的视频链接,进而获取相应的视频内容。
在一些实施例中,针对部分的特殊视频链接可以做特殊处理,如一些知名视频网址的视频链接,可使用url拼接或者第三方开源的视频库获得真正的视频链接,然后直接下载对应的视频内容。例如,对于.m3u8格式的链接,可以使用一个ffmpeg的开源视频库来直接下载获得视频。这样做的目的是,可以简化操作流程,加快效率,提升页面内容获取的通用性。
在一些实施例中,还可包括:获取所述网页源文件中的文本内容。为了更加全面地获取页面内容,还可对其中的文本内容进行获取。示例性的,可以使用xpath语法来获取网页源文件中的文本。其中,xpath中有两个获取文本的方法,text()与string()的区别是,text()是获取标签下的文本(不包括子级标签的文本),string()会得到所指元素的所有节点文本内容,这些文本将会被拼接成一个字符串。可以根据实际需求灵活选择需要获取对应的内容。可选的,还可以使用基于行块分布函数的通用网页正文抽取算法来获取网页源文件中的文本内容。
在一些实施例中,在所述文本内容中包含二级链接的情况下,将所述二级链接对应的网络资源地址确定为新的第一网络资源地址,并重复执行利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件的相关步骤。这样设置的好处在于,可以进一步获取网页源文件中潜在的网页内容,对于网页识别等相关应用来说,可以更加全面地对网页内容进行审核。
图5为本发明实施例提供的再一种网页内容获取方法的流程示意图,如图5所示,输入URL地址,并判断URL地址是否合法,若不合法,则提示重新输入URL,若合法,则基于Headless Browser技术以及浏览器自动化测试框架建立与服务端的HTTP连接,获得HTML源文件。对HTML源文件进行初步解析,剔除script和style等标签,然后按需获取内容,所获取的内容包括图像、文本和视频。
对于图片源,对HTML文件进行进一步解释,然后通过两种方式获取图片url,第一种是使用HTML定位技术定位页面中的图片元素并获取src(即图片链接),第二种是使用网络代理捉包工具获取动态生成的图片请求(即图片链接),求出两种方式所得的图片链接的并集,得到该网站中所有的图片链接的集合,并根据该集合下载图片资源。
对于视频源,对HTML文件进行进一步解释,然后通过两种方式获取视频url,第一种是使用HTML定位技术定位页面中的video元素并获取src(即视频链接),第二种是使用网络代理捉包工具获取视频的流请求(即视频链接),求出两种方式所得的视频链接的并集,得到该网站中所有的视频链接的集合,并根据该集合下载视频资源。
对于文本,可利用正文提取算法递归dom获取文本,以及获取二级链接。
最后,将所获取的图片、视频以及文本转换为通用形式的数据进行返回。
通过采用上述技术方案,无论是静态页面,还是传统方法不能获取的动态页面,或者是页面中有包含iframe嵌套页面的复杂情况,都可以获取到页面的图片,视频以及文字等等内容,也支持自定义规则来获取内容,在一定程度上打破了传统方法在获取页面内容上的局限性,实现了更加全面地获取网页页面内容。
图6为本发明实施例提供的一种网页内容获取装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行网页内容获取方法来获取网页内容。如图6所示,该装置包括:
网页源文件获取模块601,用于获取第一网络资源地址,利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件;
网络请求发送模块602,用于通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成;
目标内容获取模块603,用于根据所述目标网络请求获取所述目标项目对应目标内容。
本发明实施例中提供的网页内容获取装置,获取第一网络资源地址,并利用预设无头浏览器根据第一网络资源地址获取对应的网页源文件,通过预设无头浏览器发送针对网页源文件中目标项目的目标网络请求,其中,目标项目通过动态加载方式生成,根据目标网络请求获取所述目标项目对应目标内容。通过采用上述技术方案,可以利用无头浏览器来访问页面中的动态生成的项目,进而更加全面地获取网页内容。
在一些实施例中,所述通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,包括:
通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求,所述网络请求中包含针对所述网页源文件中目标项目的目标网络请求;
相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
截获通过所述预设无头浏览器向所述服务端发送的网络请求;
从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,并根据所述目标网络请求获取所述目标项目对应目标内容。
在一些实施例中,所述目标项目包括图片;
所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:
从所截获的网络请求中过滤出包含预设图片格式信息的网络请求,得到针对所述网页源文件中的第一图片的目标图片网络请求;
相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
根据所述目标图片网络请求获取所述第一图片的图片内容。
在一些实施例中,该装置还包括:
第一获取模块,用于采用第一预设页面定位技术定位并获取所述网页源文件中的第二图片的图片标签的源属性,其中,所述第二图片包括静态生成的图片;
第一内容获取模块,用于根据所述图片标签的源属性获取所述第二图片的图片内容。
在一些实施例中,所述目标项目包括视频;
所述通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求包括:
通过所述预设无头浏览器触发播放所述网页源文件中的第一视频,以向所述服务端发送所述第一视频对应的网络请求;
相应的,所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:
从所截获的网络请求中过滤出包含预设视频格式信息的网络请求,得到针对所述第一视频的目标视频网络请求;
所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
根据所述目标视频网络请求获取所述第一视频的视频内容。
在一些实施例中,所述通过所述预设无头浏览器触发播放所述网页源文件中的第一视频,包括:
通过所述预设无头浏览器调用浏览器自动化测试框架中提供的模拟点击方法,触发播放所述网页源文件中的第一视频。
在一些实施例中,该装置还包括:
第二获取模块,用于采用第二预设页面定位技术定位并获取所述网页源文件中的第二视频的视频标签的源属性,其中,所述第二视频包括静态生成的视频;
第二内容获取模块,用于根据所述视频标签的源属性获取所述第二视频的视频内容。
在一些实施例中,该装置还包括:
第三获取模块,用于采用第三预设页面定位技术定位并获取所述网页源文件中的第一内联框架标签的源属性;
第三内容获取模块,用于根据所述第一内联框架标签的源属性获取相应的视频内容。
在一些实施例中,该装置还包括:
子网页源文件获取模块,用于通过所述预设无头浏览器对所述网页源文件中包含的第二内联框架标签进行页面切换处理,以获取到所述第二内联框架标签对应的子网页源文件;
第四获取模块,用于采用第四预设页面定位技术定位并获取所述子网页源文件中的子视频标签的源属性;
第四内容获取模块,用于根据所述子视频标签的源属性获取相应的视频内容。
在一些实施例中,该装置还包括:
第五获取模块,用于采用第五预设页面定位技术定位并获取所述子网页源文件中的子内联框架标签的源属性;
第五内容获取模块,用于根据所述子内联框架标签的源属性获取相应的视频内容。
在一些实施例中,所述通过所述预设无头浏览器对所述网页源文件中包含的第一内联框架标签进行页面切换处理,以获取到所述第一内联框架标签对应的子网页源文件,包括:
通过所述预设无头浏览器调用浏览器自动化测试框架中提供的内联框架层页面切换方法,获取到所述第一内联框架标签对应的子网页源文件。
在一些实施例中,该装置还包括:
文本内容获取模块,用于获取所述网页源文件中的文本内容;
重复执行模块,用于在所述文本内容中包含二级链接的情况下,将所述二级链接对应的网络资源地址确定为新的第一网络资源地址,并重复执行利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件的相关步骤。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的网页内容获取方法。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的网页内容获取装置。图7为本发明实施例提供的一种计算机设备的结构框图。计算机设备700包括存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序,所述处理器702执行所述计算机程序时实现本发明实施例提供的网页内容获取方法。
本发明实施例提供的计算机设备,可以利用无头浏览器来访问页面中的动态生成的项目,进而更加全面地获取网页内容。
上述实施例中提供的网页内容获取装置、存储介质以及计算机设备可执行本发明任意实施例所提供的网页内容获取方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的网页内容获取方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (15)
1.一种网页内容获取方法,其特征在于,包括:
获取第一网络资源地址,并利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件;
通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成;
根据所述目标网络请求获取所述目标项目对应目标内容。
2.根据权利要求1所述的方法,其特征在于,所述通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,包括:
通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求,所述网络请求中包含针对所述网页源文件中目标项目的目标网络请求;
相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
截获通过所述预设无头浏览器向所述服务端发送的网络请求;
从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,并根据所述目标网络请求获取所述目标项目对应目标内容。
3.根据权利要求2所述的方法,其特征在于,所述目标项目包括图片;
所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:
从所截获的网络请求中过滤出包含预设图片格式信息的网络请求,得到针对所述网页源文件中的第一图片的目标图片网络请求;
相应的,所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
根据所述目标图片网络请求获取所述第一图片的图片内容。
4.根据权利要求2所述的方法,其特征在于,还包括:
采用第一预设页面定位技术定位并获取所述网页源文件中的第二图片的图片标签的源属性,其中,所述第二图片包括静态生成的图片;
根据所述图片标签的源属性获取所述第二图片的图片内容。
5.根据权利要求2所述的方法,其特征在于,所述目标项目包括视频;
所述通过所述预设无头浏览器基于所述网页源文件向所述第一网络资源地址对应的服务端发送相应的网络请求包括:
通过所述预设无头浏览器触发播放所述网页源文件中的第一视频,以向所述服务端发送所述第一视频对应的网络请求;
相应的,所述从所截获的网络请求中过滤出针对所述网页源文件中目标项目的目标网络请求,包括:
从所截获的网络请求中过滤出包含预设视频格式信息的网络请求,得到针对所述第一视频的目标视频网络请求;
所述根据所述目标网络请求获取所述目标项目对应目标内容,包括:
根据所述目标视频网络请求获取所述第一视频的视频内容。
6.根据权利要求5所述的方法,其特征在于,所述通过所述预设无头浏览器触发播放所述网页源文件中的第一视频,包括:
通过所述预设无头浏览器调用浏览器自动化测试框架中提供的模拟点击方法,触发播放所述网页源文件中的第一视频。
7.根据权利要求5所述的方法,其特征在于,还包括:
采用第二预设页面定位技术定位并获取所述网页源文件中的第二视频的视频标签的源属性,其中,所述第二视频包括静态生成的视频;
根据所述视频标签的源属性获取所述第二视频的视频内容。
8.根据权利要求5所述的方法,其特征在于,还包括:
采用第三预设页面定位技术定位并获取所述网页源文件中的第一内联框架标签的源属性;
根据所述第一内联框架标签的源属性获取相应的视频内容。
9.根据权利要求5所述的方法,其特征在于,还包括:
通过所述预设无头浏览器对所述网页源文件中包含的第二内联框架标签进行页面切换处理,以获取到所述第二内联框架标签对应的子网页源文件;
采用第四预设页面定位技术定位并获取所述子网页源文件中的子视频标签的源属性;
根据所述子视频标签的源属性获取相应的视频内容。
10.根据权利要求9所述的方法,其特征在于,还包括:
采用第五预设页面定位技术定位并获取所述子网页源文件中的子内联框架标签的源属性;
根据所述子内联框架标签的源属性获取相应的视频内容。
11.根据权利要求9所述的方法,其特征在于,所述通过所述预设无头浏览器对所述网页源文件中包含的第一内联框架标签进行页面切换处理,以获取到所述第一内联框架标签对应的子网页源文件,包括:
通过所述预设无头浏览器调用浏览器自动化测试框架中提供的内联框架层页面切换方法,获取到所述第一内联框架标签对应的子网页源文件。
12.根据权利要求1-11所述的方法,其特征在于,还包括:
获取所述网页源文件中的文本内容;
在所述文本内容中包含二级链接的情况下,将所述二级链接对应的网络资源地址确定为新的第一网络资源地址,并重复执行利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件的相关步骤。
13.一种网页内容获取装置,其特征在于,包括:
网页源文件获取模块,用于获取第一网络资源地址,利用预设无头浏览器根据所述第一网络资源地址获取对应的网页源文件;
网络请求发送模块,用于通过所述预设无头浏览器发送针对所述网页源文件中目标项目的目标网络请求,其中,所述目标项目通过动态加载方式生成;
目标内容获取模块,用于根据所述目标网络请求获取所述目标项目对应目标内容。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的方法。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401555.6A CN111177519B (zh) | 2019-12-30 | 2019-12-30 | 网页内容获取方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401555.6A CN111177519B (zh) | 2019-12-30 | 2019-12-30 | 网页内容获取方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111177519A true CN111177519A (zh) | 2020-05-19 |
CN111177519B CN111177519B (zh) | 2024-02-02 |
Family
ID=70655814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911401555.6A Active CN111177519B (zh) | 2019-12-30 | 2019-12-30 | 网页内容获取方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177519B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651966A (zh) * | 2020-06-04 | 2020-09-11 | 航天科工智慧产业发展有限公司 | 数据报告文件生成方法、装置与电子设备 |
CN111741030A (zh) * | 2020-08-26 | 2020-10-02 | 北京赛宁网安科技有限公司 | 结合Web自动化与代理拦截的网站安全检测系统及方法 |
CN113343152A (zh) * | 2021-06-25 | 2021-09-03 | 咪咕数字传媒有限公司 | 网络资源获取方法及装置 |
CN116361748A (zh) * | 2023-04-03 | 2023-06-30 | 武汉金力软件有限公司 | 一种软件供应链安全检测方法和装置 |
CN116991694A (zh) * | 2023-09-28 | 2023-11-03 | 中新云服(北京)科技有限公司 | 一种网页操作采集方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950785A (zh) * | 2004-04-30 | 2007-04-18 | 株式会社爱可信 | 框架页面显示方法、框架页面显示设备和程序 |
CN109902220A (zh) * | 2019-02-27 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 网页信息获取方法、装置和计算机可读存储介质 |
CN110209966A (zh) * | 2019-04-15 | 2019-09-06 | 优信拍(北京)信息科技有限公司 | 一种网页刷新方法、网页系统及电子设备 |
-
2019
- 2019-12-30 CN CN201911401555.6A patent/CN111177519B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950785A (zh) * | 2004-04-30 | 2007-04-18 | 株式会社爱可信 | 框架页面显示方法、框架页面显示设备和程序 |
CN109902220A (zh) * | 2019-02-27 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 网页信息获取方法、装置和计算机可读存储介质 |
CN110209966A (zh) * | 2019-04-15 | 2019-09-06 | 优信拍(北京)信息科技有限公司 | 一种网页刷新方法、网页系统及电子设备 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651966A (zh) * | 2020-06-04 | 2020-09-11 | 航天科工智慧产业发展有限公司 | 数据报告文件生成方法、装置与电子设备 |
CN111741030A (zh) * | 2020-08-26 | 2020-10-02 | 北京赛宁网安科技有限公司 | 结合Web自动化与代理拦截的网站安全检测系统及方法 |
CN111741030B (zh) * | 2020-08-26 | 2020-12-04 | 北京赛宁网安科技有限公司 | 结合Web自动化与代理拦截的网站安全检测系统及方法 |
CN113343152A (zh) * | 2021-06-25 | 2021-09-03 | 咪咕数字传媒有限公司 | 网络资源获取方法及装置 |
CN113343152B (zh) * | 2021-06-25 | 2023-08-15 | 咪咕数字传媒有限公司 | 网络资源获取方法及装置 |
CN116361748A (zh) * | 2023-04-03 | 2023-06-30 | 武汉金力软件有限公司 | 一种软件供应链安全检测方法和装置 |
CN116361748B (zh) * | 2023-04-03 | 2023-09-15 | 武汉金力软件有限公司 | 一种软件供应链安全检测方法和装置 |
CN116991694A (zh) * | 2023-09-28 | 2023-11-03 | 中新云服(北京)科技有限公司 | 一种网页操作采集方法 |
CN116991694B (zh) * | 2023-09-28 | 2024-01-26 | 中新云服(北京)科技有限公司 | 一种网页操作采集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111177519B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177519B (zh) | 网页内容获取方法、装置、存储介质及设备 | |
US10613916B2 (en) | Enabling a web application to call at least one native function of a mobile device | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
US8640037B2 (en) | Graphical overlay related to data mining and analytics | |
US9235640B2 (en) | Logging browser data | |
US8413044B2 (en) | Method and system of retrieving Ajax web page content | |
US9268547B2 (en) | Conditional logic for delivering computer-executable program instructions and content | |
US20080046562A1 (en) | Visual web page analytics | |
US7987243B2 (en) | Method for media discovery | |
CN112637361B (zh) | 一种页面代理方法、装置、电子设备及存储介质 | |
EP3104279B1 (en) | Testing interactive network systems | |
CN107147645B (zh) | 网络安全数据的获取方法及装置 | |
CN108701130A (zh) | 使用自动浏览群集更新提示模型 | |
CN110851681A (zh) | 爬虫处理方法、装置、服务器及计算机可读存储介质 | |
CN104573520A (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
CN113296653B (zh) | 一种仿真交互模型构建方法、交互方法及相关设备 | |
US10291492B2 (en) | Systems and methods for discovering sources of online content | |
CN111177623A (zh) | 信息处理方法及装置 | |
US20240179219A1 (en) | Methods for detecting tracking elements of a web page and related server devices | |
CN113742551A (zh) | 一种基于scrapy和puppeteer的动态数据抓取方法 | |
CN116955861A (zh) | 页面生成方法和装置以及前端融合系统 | |
CN115589578A (zh) | 多媒体网页协议信息转换方法、装置及系统 | |
CN113779350A (zh) | 数据采集方法、装置、计算机系统和计算机可读存储介质 | |
CN113792243A (zh) | 网页数据处理方法及装置、存储介质和电子设备 | |
CN116662698A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |