CN108197125A - 网页抓取方法及装置 - Google Patents
网页抓取方法及装置 Download PDFInfo
- Publication number
- CN108197125A CN108197125A CN201611121344.3A CN201611121344A CN108197125A CN 108197125 A CN108197125 A CN 108197125A CN 201611121344 A CN201611121344 A CN 201611121344A CN 108197125 A CN108197125 A CN 108197125A
- Authority
- CN
- China
- Prior art keywords
- game
- webpage
- server
- rendering
- source code
- 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
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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- 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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/535—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网页抓取方法及装置,属于计算机网络领域。所述方法包括:抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;渲染后的网页页面中提取H5游戏对应的游戏详情信息。本发明通过网页源代码识别出H5游戏对应的网页页面,使得服务器能够从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
Description
技术领域
本发明实施例涉及计算机网络领域,特别涉及一种网页抓取方法及装置。
背景技术
H5(Hypertext Markup Language 5,超文本链接标示语言5)游戏是指在诸如智能手机、平板电脑等电子设备的Web端上运行的游戏。
在建立一个H5游戏网站时,需要网站管理员收集多个H5游戏的游戏详情信息,比如:游戏名、游戏简介信息、游戏运行图片等。在收集过程中,网站管理员会使用网络爬虫对已有的H5游戏网站的所有网页页面进行抓取,所有网页页面中包括H5游戏对应的网页页面和非H5游戏对应的网页页面;然后由人工在所有网页页面中提取与H5游戏有关的游戏详情信息。
由于在上述技术中,网络爬虫只能简单地抓取所有网页页面,需要大量的人工来识别H5游戏所对应的网页页面,以及从H5游戏所对应的网页页面提取信息,整个提取过程的效率较为低下,准确率也较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种网页抓取方法及装置。所述技术方案如下:
第一方面,提供了一种网页抓取方法,所述方法包括:
抓取游戏网站上的目标网页页面;
根据所述目标网页页面的网页源代码,识别H5游戏对应的网页页面;
对所述H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;
从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
其中,所述游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
第二方面,提供了一种网页抓取装置,所述装置包括:
抓取模块,用于抓取游戏网站上的目标网页页面;
识别模块,用于根据所述目标网页页面的网页源代码,识别H5游戏对应的网页页面;
渲染模块,用于对所述H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;
提取模块,用于从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
其中,所述游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
本发明实施例提供的技术方案带来的有益效果是:
通过抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;从渲染后的网页页面中提取H5游戏对应的游戏详情信息;使得服务器能够根据网页源代码识别出H5游戏对应的网页页面,从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的网页抓取方法所涉及的一种实施环境的结构示意图;
图2是本发明实施例提供的网页抓取方法所涉及的另一种实施环境的结构示意图;
图3是本发明一个实施例提供的网页抓取方法的流程图;
图4是本发明另一个实施例提供的网页抓取方法的流程图;
图5A是本发明一个实施例提供的网页抓取方法的原理图;
图5B是本发明另一个实施例提供的网页抓取方法的原理图;
图5C是本发明另一个实施例提供的网页抓取方法的原理图;
图6是本发明一个实施例提供的网页抓取装置的结构图;
图7是本发明另一个实施例提供的网页抓取装置的结构图;
图8是本发明一个实施例提供的服务器的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明实施例提供的网页抓取方法所涉及的一种实施环境的结构示意图。该实施环境包括:抓取***100和游戏服务器160,该抓取***100包括分析服务器120和至少两个抓取服务器140。
分析服务器120,用于获取n个抓取服务器140与游戏服务器160之间的通信时间;其中,n为大于1的整数。可选地,分析服务器120还用于对抓取到的网页页面进行分析。
由于抓取服务器140与游戏服务器160之间的通信时间越短表示网络状况越好,抓取服务器140访问该游戏服务器160的网速越快,因此,分析服务器120,还用于确定通信时间最短的抓取服务器140作为本次使用的抓取服务器140。可选地,通信时间为抓取服务器140从发送HTTP请求至获取到HTTP响应结果的各个阶段耗时,包括:连接时间、发送请求时间、等待响应时间、接收数据时间。
需要说明的是,可以将连接时间确定为抓取服务器140与游戏服务器160之间的通信时间,本实施例对通信时间的确定方式不加以限定。
分析服务器120可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。分析服务器120用于与抓取服务器140交互实现本次使用的抓取服务器140的确定。
分析服务器120与抓取服务器140之间通过通信网络相连。可选地,通信网络是有线网络或无线网络。
游戏服务器160游戏服务器160游戏服务器160游戏服务器160抓取服务器140可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。抓取服务器140用于与游戏服务器160交互,实现游戏服务器160上的网页页面的抓取。抓取服务器140可以单独设立;也可以由互联网服务商(英文:Internet Service Provider,ISP)来设立。
其中,根据互联网服务提供商的不同和游戏服务器160的位置区域的不同,一个网络环境下可以部署多个抓取服务器140,每一个抓取服务器140对应一个地域和/或一个ISP。比如,将抓取服务器140部署在各个位置区域的电信、移动和联通中。
在网络访问中,跨地域和/或跨网络访问网站会带来很大的网络时延,导致通信时间较长。比如从服务商A机房的机器去访问部署在服务商B机房的某个网站,那么跨网带来的时延可能由ms级别上升到s级。即使是从服务商A机房去访问部署在其他服务商A机房的网站,如果选择的IP不合适同样有可能造成耗时增高。由此可知,,跨地域和/或跨网络访问通常会导致访问网速较慢,即通信时间较长。因此,可选地,访问游戏服务器160的通信时间最短的目标抓取服务器应该与游戏服务器160属于相同位置区域的同一ISP,使得从该目标抓取服务器访问该游戏服务器160不属于跨地区且跨网络访问,具有较快的访问网速,即较短的通信时间。
抓取服务器140与游戏网站160之间通过通信网络相连。可选地,通信网络是有线网络或无线网络。
通常,分析服务器120获取n个抓取服务器140与游戏服务器160之间的通信时间,分析服务器120确定通信时间最短的抓取服务器140作为本次使用的抓取服务器140;然后,由抓取服务器140抓取游戏服务器160上的目标网页页面。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
可选地,在抓取游戏服务器160上的目标网页页面的过程中,抓取服务器140设置TCP(Transmission Control Protocol,传输控制协议)拥塞窗口(Congestion Window,CWnd)的初始值为预设阈值,该预设阈值是用于接收抓取到的目标网页页面时所需要的经验上限值。
请参考图2,其示出了本发明实施例提供的网页抓取方法所涉及的另一种实施环境的结构示意图。该实施环境包括:抓取***100和至少两个游戏服务器160。
同一个游戏网站可能设置多个游戏服务器160。
抓取***100,用于获取与游戏网站对应的n个游戏服务器160之间的通信时间。
由于抓取***100与游戏服务器160之间的通信时间越短表示网络状况越好,抓取***100与游戏服务器160的连接速度越快,因此,抓取***100,还用于确定通信时间最短的游戏服务器160作为本次抓取的游戏服务器160。其中,通信时间包括:连接时间、发送请求时间、等待响应时间、接收数据时间。
需要说明的是,由于连接时间也能准确反应建立连接过程中的网络状况,服务器也可以将连接时间确定为抓取***100与游戏服务器160之间的通信时间,本实施例对通信时间的确定范围不加以限定。
抓取***100可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。抓取***100用于与游戏网站对应的n个游戏服务器160交互实现游戏网站上的目标网页页面的抓取。抓取***100可以单独设立;也可以由互联网服务商(英文:Internet Service Provider,ISP)来设立。
同一个游戏网站通常对应有多个游戏服务器160,这样用户可以根据互联网服务提供商的不同和位置区域的不同,选择与该互联网服务提供商和位置区域对应的一个游戏服务器160,因此一个游戏服务器160对应一个位置区域中的一个互联网服务提供商。
可选地,抓取***100在抓取游戏网站上的目标网页页面之后,设置TCP拥塞窗口的初始值为预设阈值,该预设阈值是用于接收抓取到的目标网页页面时所需要的经验上限值。
请参考图3,其示出了本发明一个实施例提供的网页抓取方法的流程图。本实施例以该网页抓取方法应用于图1或图2所示出的实施环境来举例说明。该网页抓取方法包括:
步骤301,抓取游戏网站上的目标网页页面。
游戏网站通常由网站管理员预先设置,游戏网站可以是一个,也可以是两个或两个以上的游戏网站。本实施例以游戏网站为一个来举例说明。
可选地,抓取服务器抓取游戏网站上的目标网页页面。
其中,该游戏网站上的目标网页页面包括H5游戏对应的网页页面,该目标网页页面可以为一个网页页面,也可以为两个或两个以上网页页面。
可选地,抓取服务器通过网络爬虫从互联网中抓取游戏网站上的若干个目标网页页面。网络爬虫的基本工作流程如下:1)获取经选择的种子URL(Uniform ResourceLocator,统一资源定位符);2)将上述种子URL放入待抓取URL队列;3)从待抓取URL队列中依次取出待抓取URL,对其进行解析并从相应的主机中获取该待抓取URL对应的网页页面;4)将该完成抓取的URL放入已抓取URL队列;5)对已抓取URL队列中的URL进行分析,以获得其它URL,并将获取到的其它URL放入待抓取URL队列,从而进入下一个循环。另外,网络爬虫抓取的目标网页页面的格式通常为HTML格式。
步骤302,根据目标网页页面的网页源代码,识别H5游戏对应的网页页面。
抓取到的目标网页页面包括:H5游戏对应的网页页面,和,非H5游戏对应的网页页面,抓取服务器根据目标网页页面的网页源代码,识别H5游戏对应的网页页面。识别出的H5游戏对应的网页页面会作为后续步骤所分析的网页页面。
其中,网页源代码是指用于组织排版网页上的文字、图片、音乐、视频、链接等元素的标准语言代码。该标准语言代码通常为HTML代码,有时也可混合CSS(Cascading StyleSheets,层叠样式表)代码或者JS(JavaScript,一种脚本语言)代码等。
抓取服务器抓取游戏网站上的目标网页页面之后,从目标网页页面中提取网页源代码。比如,当目标网页页面为HTML文件时,也即从HTML文件中提取HTML源代码。
需要说明的一点是,网络爬虫通常按照待抓取URL队列中待抓取URL的排布顺序,依次逐个抓取目标网页页面。当目标网页页面包括多个网页页面时,抓取服务器可以依次逐个从网页页面中提取网页源代码,也可以同时从多个网页页面中提取网页源代码,本实施例对此不作限定。
步骤303,对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面。
H5游戏对应的网页页面通常都夹杂有CSS代码或者JS代码,这些页面需要渲染完毕后才能得到真实的网页页面,在渲染之前有一些信息是无法提取到的信息,比如需要动态生成的动画素材或图片素材等。
可选地,抓取服务器对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面。
步骤304,从渲染后的网页页面中提取H5游戏对应的游戏详情信息。
可选地,抓取服务器从渲染后的网页页面中提取H5游戏对应的游戏详情信息。
其中,游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
可选地,抓取服务器将抓取到的游戏名和游戏详情信息进行关联存储。
综上所述,本实施例通过抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;从渲染后的网页页面中提取H5游戏对应的游戏详情信息;使得抓取服务器能够根据网页源代码识别出H5游戏对应的网页页面,从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
请参考图4,其示出了本发明一个实施例提供的网页抓取方法的流程图。本实施例以该网页抓取方法应用于图1或图2所示出的实施环境来举例说明。该网页抓取方法包括:
步骤401,抓取服务器通过网络爬虫抓取游戏网站的第一层URL对应的第一网页页面。
步骤402,抓取服务器从第一网页页面中获取第二层URL,第二层URL是与游戏分类对应的URL。
步骤403,抓取服务器通过网络爬虫抓取第二层URL对应的第二网页页面。
步骤404,抓取服务器从第二网页页面中提取游戏名和游戏简介信息。
步骤405,抓取服务器将游戏简介信息添加至与游戏名对应的游戏详情信息中。
步骤406,抓取服务器从第二网页页面中获取第三层URL,第三层URL包括与H5游戏对应的URL。
步骤407,抓取服务器通过网络爬虫抓取第三层URL对应的第三网页页面,将第三网页页面确定为目标网页页面。
请参考图5A,在一个具体的例子中,该游戏网站为“XX小游戏”,该游戏网站的第一层URL为“http://www.XX.com/”,抓取服务器通过网络爬虫抓取第一层URL对应的第一网页页面“游戏分类列表”,该游戏分类列表中包括“策略”、“动作”和“装扮”,抓取服务器从第一网页页面中获取第二层URL,即与“动作”对应的URL“http://www.XX.com/flash_fl/2_1.htm”;抓取服务器通过网络爬虫抓取第二层URL对应的第二网页页面“动作小游戏”,第二网页页面中包括游戏名“WW猎人”、游戏名“YY联盟”和游戏名“MM斗侠”,每个游戏对应一个游戏名和一个游戏简介信息,比如游戏“YY联盟”包括游戏名“YY联盟”和游戏简介信息“击败对手两次获胜;1分钟后据点大门开启,拥有能源球的玩家将能源球归还己方据点后获胜”,抓取服务器从第二网页页面中提取该游戏名和游戏简介信息;抓取服务器将该游戏简介信息添加至与游戏名“YY联盟”对应的游戏详情信息中;抓取服务器从第二网页页面中获取第三层URL,即与“YY联盟”对应的URL“http://www.XX.com/flash/180911.htm”,抓取服务器通过网络爬虫抓取第三层URL对应的第三网页页面“YY联盟小游戏”,将第三网页页面确定为目标网页页面。
步骤408,检测目标网页页面的网页源代码是否符合预定条件。
可选地,抓取服务器检测目标网页页面的网页源代码是否符合预定条件。
其中,预定条件中的至少一种条件:网页页面的主题名称与预设游戏关键字匹配;和/或,携带有采用预定渲染技术的代码,预定渲染技术包括canvas和WebGL中的至少一种;和/或,携带有预定游戏引擎对应的代码,预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个。
可选地,预定条件包括至少两种条件,该步骤具体包括:
1、抓取服务器检测目标网页页面的网页源代码是否符合第i种条件。
可选地,第1种条件为网页页面的主题名称与预设游戏关键字匹配,第2种条件为携带有采用预定渲染技术的代码,预定渲染技术包括canvas和WebGL中的至少一种,第3种条件为携带有预定游戏引擎对应的代码,预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个。
2、抓取服务器根据检测结果和如下公式计算网页源代码是H5游戏对应的网页页面的概率值:
其中,y表示概率值,ai表示第i种条件对应的权值,当网页源代码符合第i种条件时,bi的取值为大于0的预定值,当网页源代码不符合第i种条件时,bi的取值为0,1≤n≤N,N为预定条件的个数;示意性的,预定值通常是1。
可选地,设置第1种条件对应的权值a1为0.4,设置第1种条件对应的权值a2为0.3,设置第1种条件对应的权值a3为0.3,当抓取服务器检测目标网页页面的网页源代码符合第1种条件和第2种条件时,根据检测结果和该公式计算网页源代码是H5游戏对应的网页页面的概率值为0.7。
3、抓取服务器检测概率值是否大于预设阈值。
可选地,抓取服务器将预设阈值设置为0.5,当计算出的概率值为0.7时,抓取服务器检测该概率值大于预设阈值。
4、若概率值大于预设阈值,则抓取服务器确定网页源代码符合预定条件。
步骤409,若网页源代码符合预定条件,则将网页页面识别为H5游戏对应的网页页面。
可选地,若网页源代码符合预定条件,则抓取服务器将网页页面识别为H5游戏对应的网页页面。
可选地,抓取服务器在抓取游戏网站上的目标网页页面之前,判断游戏网站的运行状态是否存在问题,若不存在问题,抓取服务器抓取该游戏网站上的目标网页页面。
示意性的,分析服务器判断游戏网站的运行状态包括以下步骤:首先分析服务器判断游戏网站的域名是否进行了注册,如果没有注册则确定该游戏网站的运行状态有问题;然后分析服务器判断游戏网站的ip地址是否成功解析,如果没有成功解析则确定该游戏网站的运行状态存在问题;接着分析服务器请求该游戏网站获取http状态码和响应时间,判断http状态码是否等于200,如果不等于200则确定该游戏网站的运行状态存在问题;最后分析服务器判断该游戏网站的响应时间是否大于10秒,若大于10秒则确定该游戏网站的运行状态存在问题。
可选地,抓取服务器每隔预定时间段将CPU(CPU,Central Processing Unit)使用率上报至分析服务器,当CPU使用率超过正常值即该抓取服务器即将过载时,分析服务器降低该抓取服务器的负载。
可选地,根据不同的位置区域和不同的互联网服务提供商,还预先配置有不同的DNS(Domain Name System,域名***)主服务器和备份服务器,当抓取服务器计算出的DNS主服务器的成功率大于或等于DNS备份服务器时,将DNS服务器切换为DNS主服务器;当计算出的DNS主服务器的成功率小于DNS备份服务器时,将当前提供服务的DNS服务器从DNS主服务器切换为DNS备份服务器;当计算出的DNS主服务器和DNS备份服务器的成功率均低于预定阈值时,将当前提供服务的DNS服务器从DNS主服务器切换为DNS二级备份服务器。
步骤410,对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面。
H5游戏对应的网页页面通常都夹杂有CSS代码或者JS代码,这些页面需要渲染完毕后才能得到真实的网页页面,在渲染之前有一些信息是无法提取到的信息,比如需要动态生成的动画素材或图片素材等。
可选地,抓取服务器对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面。
可选地,该渲染步骤包括以下步骤:
1、抓取服务器提取H5游戏对应的网页页面中的JavaScript信息。
以网页源代码为HTML代码为例,在HTML代码中加入JavaScript信息的形式一般包括以下两种:(1)、将JavaScript代码直接嵌入HTML代码中;(2)、将JavaScript代码放入外部文件,并在HTML代码中引用该外部文件。
根据上述两种形式,可以通过查询网页源代码中的<script>标记来提取HTML代码中的JavaScript信息,该提取方法包括以下步骤:
(1)、抓取服务器查询网页源代码中的JavaScript标记。
(2)、抓取服务器判断JavaScript标记后的JavaScript信息类型;如果是JavaScript代码,则执行步骤(3),如果是JavaScript文件,则执行步骤(4)。
(3)、抓取服务器提取位于JavaScript标记对之间的JavaScript代码。
(4)、抓取服务器提取JavaScript文件的存放路径和文件名。
对于一段HTML代码,执行上述步骤遍历所有<script>标记的节点之后,将得到若干段JavaScript代码,和/或若干JavaScript文件及其存放路径。可以将所有提取到的JavaScript代码都保存到一个临时的.js文件中。
2、抓取服务器解析JavaScript信息,确定H5游戏对应的网页页面的网页源代码中包含预定函数。
在网页源代码中所引用的JavaScript文件,一般包括两类,一类是JavaScript的框架文件,这类文件一般都有固定的文件命名,例如prototype.js;另一类则是非JavaScript框架文件。在一段网页源代码中,预定函数是在非JavaScript框架文件中所定义的,因此,对于JavaScript的框架文件,不需要对其内容做进一步的解析,但是可以根据其文件名,找到和其框架类型相对应的特征值,并根据该特征值来找到非JavaScript框架文件中所定义的预定函数,然后进一步找到网页源代码中预定函数。具体步骤如下:
(1)、根据JavaScript文件名,抓取服务器确定JavaScript文件类型。
根据前述方法,确定JavaScript文件是框架文件还是非框架文件。
(2)如果是框架文件,则抓取服务器获得其所对应的特征值。
(3)、根据特征值,抓取服务器确定非JavaScript框架文件中所定义的预定函数。
在JavaScript文件中的预定函数包含一段特定的代码,称之为特征值。因此,可以根据JavaScript文件中的函数中是否包含这些特征值,判断函数是否为预定函数。
3、抓取服务器执行所确定的预定函数,获得渲染后的网页页面。
可选地,抓取服务器直接对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面。
可选地,上述渲染过程仅为示意性说明,根据网页页面所包含的代码类型不同,上述渲染过程可以由各种不同的实现方式。
步骤411,从渲染后的网页页面中提取H5游戏对应的游戏详情信息。
可选地,抓取服务器从渲染后的网页页面中提取H5游戏对应的游戏详情信息。
其中,游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
可选地,抓取服务器根据预先设置的数据采集规则,采集渲染后的网页页面中与数据采集规则匹配的网页数据;对网页数据进行数据挖掘,获取H5游戏对应的游戏详情信息。
可选地,抓取服务器根据预先训练出的机器学习模型,由机器学习模型从渲染后的网页页面中提取H5游戏对应的游戏详情信息。
可选地,抓取服务器对渲染后的网页页面进行视觉分析,检测渲染后的网页页面中是否包含H5游戏对应的游戏详情信息;若包含,则根据视觉分析的分析结果,将H5游戏对应的游戏详情信息和渲染后的网页页面的背景图像分离,提取H5游戏对应的游戏详情信息。
可选地,从渲染后的网页页面中提取H5游戏对应的游戏详情信息的方法还包括以下步骤:
1、抓取服务器根据网页源代码,建立渲染后的目标网页页面的文档对象模型树(英文:Document Object Model,DOM)结构,文档对象模型树结构包括一个或多个节点。
以网络爬虫抓取的目标网页页面的格式为HTML格式为例,通过解析网页源代码,可以利用DOM技术来建立目标网页页面的DOM树结构,目标网页页面的DOM树结构中可以包括一个或多个节点。
可选地,按照预设算法自动地在DOM树中选择节点。可选地,利用人机界面由人为操作来选择节点。
2、抓取服务器获取游戏网站的至少一个模板,该模板是文档对象模型树结构的。
由于游戏网站中同一类型的网页具有相似的结构,因此可以针对一个类型的网页建立相应的一个或多个模板。示意性的,游戏网站中网页的类型包括有关游戏分类信息、游戏简介信息和游戏详情信息的网页。
可选地,抓取服务器利用DOM技术来建立某种类型的网页的DOM树结构,从而形成针对该类型的网页的模板。所述模板中可以包括相应的DOM树结构中一个或多个节点的路径信息。节点的路径信息可以包括有关从相应的DOM树结构的根节点到该节点的路径的信息,具体而言,包括从根节点到达该节点要经过的各节点的属性信息。在一个示例中,节点的属性信息可以包括节点的名称(如标签)、顺序号等。顺序号指示该节点在相应的DOM树结构中的位置。在一个示例中,顺序号可以指示该节点在相应的DOM树结构的所属层中的位置。
可选地,该模板是针对该游戏网站而建立的,可以包括该游戏网站中以下内容的路径信息:游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型等。在实际应用中,这些内容可以根据需要来选择,本实施例对此不加以限定。
可选地,所建立的模板是XML(Extensible Markup Language,可扩展标记语言)文件格式的。模板中的游戏详情信息的路径信息可以一个字符串,该字符串由标识DOM树层次结构的结构数组组成,结构数组可以包括节点的名称(如标签)和顺序号等属性信息。示意性的,各节点的顺序号可以从零开始,依次指向顺序号的值加一后所对应的节点。
3、抓取服务器从模板中选择游戏详情信息的路径信息,并将游戏详情信息的路径信息与文档对象模型树结构中的各个节点进行匹配。
可选地,遍历渲染后的网页页面的DOM树结构,将游戏详情信息的路径信息与DOM树结构中的各个节点进行匹配,并返回路径信息中最后的匹配节点在DOM树结构中的位置。
4、若匹配成功,则抓取服务器提取渲染后的网页页面中与路径信息对应的游戏详情信息。
可选地,抓取服务器在提取到游戏详情信息后,对游戏详情信息进行存储。
需要说明的是,当URL死链,即Web网站中的Web链接处于路径不可达状态时,抓取服务器根据http返回码终止该网页抓取方法;当游戏网站上的目标网页页面的信息更新时,可通过配置页面提取模版配置接口,重新定义从渲染后的网页页面中提取H5游戏对应的游戏详情信息的提取逻辑,根据重新定义的提取逻辑再次重新执行网页抓取方法。
还需要说明的是,由于在步骤404中抓取服务器在第二层网页页面中提取到游戏名以及游戏简介信息,而在第三层网页页面(也即目标网页页面)中提取到游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型等其它游戏详情信息,则抓取服务器将两次分别抓取到的游戏名、游戏简介信息、游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型等信息存储至同一组游戏详情信息中。
可选地,在步骤401之前还包括以下步骤:
1、分析服务器获取n个抓取服务器与游戏网站之间的通信时间,n为大于1的整数。
2、分析服务器确定通信时间最短的抓取服务器作为本次使用的抓取服务器。
比如,该游戏网站的互联网服务提供商为服务商A,该游戏网站所在的地区为北京,首先,分析服务器获取3个抓取服务器与该游戏网站之间的通信时间,第一抓取服务器为北京的服务商A的抓取服务器,第一抓取服务器与该游戏网站之间的通信时间为0.1ms;第二抓取服务器为北京的服务商B的抓取服务器,第二抓取服务器与该游戏网站之间的通信时间为0.5ms;第三抓取服务器为上海的服务商C抓取服务器,第三抓取服务器与该游戏网站之间的通信时间为0.2s,则分析服务器确定第一抓取服务器作为本次使用的抓取服务器。
3、抓取服务器获取与游戏网站对应的n个游戏服务器之间的通信时间。
4、抓取服务器确定通信时间最短的游戏服务器作为本次抓取的游戏服务器。
比如,该游戏网站的互联网服务提供商为服务商A,该游戏网站所在的地区为北京,首先,抓取服务器获取与该游戏网站对应的3个游戏服务器之间的通信时间,与第一个游戏服务器之间的通信时间为0.1ms,与第二个游戏服务器之间的通信时间为0.3ms,与第一个游戏服务器之间的通信时间为0.8ms,则分析服务器确定第一游戏服务器作为本次抓取的游戏服务器。
5、抓取服务器设置TCP拥塞窗口的初始值为预设阈值,该预设阈值是用于接收抓取到的目标网页页面时所需要的经验上限值。
可选地,抓取服务器为TCP拥塞窗口设置一个较大的初始值,以便将在接收目标网页页面时,能够一次性传送该目标网页页面的所有数据,减少传输耗时。
其中,TCP是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议栈中的传输层协议,拥塞窗口利用抓取服务器的窗口大小来控制游戏网站发送数据的速率。
可选地,设置TCP拥塞窗口的初始值为预设阈值的方法具体包括以下步骤:当接收到客户端访问网页的请求信息时,抓取服务器获取最大报文长度(Maximum Segment Size,MSS)以及拥塞窗口的初始值;计算拥塞窗口的初始值与最大报文长度的比值,得到第一参数;比较第一参数与第二参数的大小;若第一参数小于第二参数,则将第二参数与最大报文长度的乘积作为调整后的拥塞窗口的初始值即预设阈值。
可选地,第二参数是预设的;示意性的,设置第二参数为10;可选地,第二参数是根据当前的带宽利用率来确定的。本实施例对第二参数的具体数值不加以限定。
比如,第一参数为3,第二参数为10,用MSS表示最大报文长度,则拥塞窗口初始值为3×MSS,调整后的拥塞窗口初始值为10×MSS。
可选地,抓取服务器采用预连接的方式与游戏网站建立连接。也即,在抓取游戏网站上的目标网页页面之前,抓取服务器预先建立与游戏服务器之间的连接。
需要说明的是,步骤5与步骤3至步骤4可以并列执行,本实施例对此不加以限定。
综上所述,本实施例通过抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;从渲染后的网页页面中提取H5游戏对应的游戏详情信息;使得抓取服务器能够根据网页源代码识别出H5游戏对应的网页页面,并从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
本实施例还通过检测目标网页页面的网页源代码是否符合预定条件;若网页源代码符合预定条件,则将网页页面识别为H5游戏对应的网页页面;其中,预定条件中的至少一种条件:网页页面的主题名称与预设游戏关键字匹配;和/或,携带有采用预定渲染技术的代码,预定渲染技术包括canvas和WebGL中的至少一种;和/或,携带有预定游戏引擎对应的代码,预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个;当网页源代码符合预定条件时,使得抓取服务器能够将网页页面识别为H5游戏对应的网页页面,达到了准确有效地确定出H5游戏对应的网页页面的效果。
请参考图5B,其示出了本发明另一个实施例提供的网页抓取方法的原理图。
该抓取***主要包括两个部分:抓取管理部分50和监控管理部分60,该抓取管理部分50包括:三个模块,分别为页面抓取模块51、页面动态渲染模块52和页面内容提取模块53,该监控管理部分60包括两个模块,分别为监控模块61和反抓取处理模块62。
抓取服务模块54通过页面抓取模块51抓取游戏网站上的目标网页页面,根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;抓取服务模块54通过页面动态渲染模块52对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;抓取服务模块54通过页面内容提取模块53从渲染后的网页页面中提取该H5游戏对应的游戏详情信息,其中,页面内容提取模块53先通过页面分析模块55分析出渲染后的网页页面中的各种消息,再从分析出的各种消息中提取该H5游戏对应的游戏详情信息;抓取服务模块54将提取的游戏详情信息存储至数据库56中。在抓取游戏网站上的目标网页页面之前,资源管理模块57确定本次使用的抓取服务器和本次抓取的游戏服务器。当游戏网站上的目标网页页面的信息更新时,可通过配置页面提取模版配置接口58,重新定义从渲染后的网页页面中提取H5游戏对应的游戏详情信息的提取逻辑,根据重新定义的提取逻辑再次重新执行网页抓取方法。
其中,监控模块61用于监控由抓取服务模块54抓取的目标网页页面是否为游戏网站的网页页面,若不是,则监控模块61向抓取管理部分50发送抓取失败指令,抓取管理部分50接收到该抓取失败指令后调整抓取逻辑,再次抓取目标网页页面。反抓取处理模块62用于抓取访问该抓取服务模块54的其它服务器中的目标网页页面。
可选地,抓取服务模块54抓取游戏网站上的目标网页页面的方法包括以下步骤,结合参考图5C:首先,抓取服务模块54获取URL请求,并向DNS服务器发送该URL,然后,抓取服务模块54获取DNS服务器反馈的URL对应的IP地址,接着,抓取服务模块54向该IP地址发送HTTP请求,最后,抓取服务模块54接收并解析反馈的HTTP响应结果,从而得到该URL对应的内容,即目标网页页面的网页源代码。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参考图6,其示出了本发明一个实施例提供的网页抓取装置的结构示意图。该网页抓取装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1或图2中的抓取***的全部或一部分,该网页抓取装置包括:
抓取模块610,用于抓取游戏网站上的目标网页页面;
识别模块620,用于根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;
渲染模块630,用于对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;
提取模块640,用于从渲染后的网页页面中提取H5游戏对应的游戏详情信息;
其中,游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
综上所述,本实施例通过抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;从渲染后的网页页面中提取H5游戏对应的游戏详情信息;使得抓取服务器能够根据网页源代码识别出H5游戏对应的网页页面,从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
请参考图7,其示出了本发明另一个实施例提供的网页抓取装置的结构示意图。该网页抓取装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1或图2中的抓取***的全部或一部分,该网页抓取装置包括:
识别模块620,包括:
检测单元621和识别单元622;
检测单元621,用于检测目标网页页面的网页源代码是否符合预定条件;
识别单元622,用于若网页源代码符合预定条件,则将网页页面识别为H5游戏对应的网页页面;
其中,预定条件中的至少一种条件:
网页页面的主题名称与预设游戏关键字匹配;和/或,
携带有采用预定渲染技术的代码,预定渲染技术包括canvas和WebGL中的至少一种;和/或,
携带有预定游戏引擎对应的代码,预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个。
预定条件包括至少两种条件;
检测单元621,包括:
第一检测子单元621a、计算子单元621b、第二检测子单元621c和确定子单元621d;
第一检测子单元621a,用于检测目标网页页面的网页源代码是否符合第i种条件;
计算子单元621b,用于根据检测结果和如下公式计算网页源代码是H5游戏对应的网页页面的概率值:
第二检测子单元621c,用于检测概率值是否大于预设阈值;
确定子单元621d,用于若概率值大于预设阈值,则确定网页源代码符合预定条件;
其中,y表示概率值,ai表示第i种条件对应的权值,当网页源代码符合第i种条件时,bi的取值为大于0的预定值,当网页源代码不符合第i种条件时,bi的取值为0,1≤n≤N,N为预定条件的个数。
抓取模块610,包括:
第一抓取单元611、第一获取单元612、第二抓取单元613、第二获取单元614和第三抓取单元615;
第一抓取单元611,用于通过网络爬虫抓取游戏网站的第一层URL对应的第一网页页面;
第一获取单元612,用于从第一网页页面中获取第二层URL,第二层URL是与游戏分类对应的URL;
第二抓取单元613,用于通过网络爬虫抓取第二层URL对应的第二网页页面;
第二获取单元614,用于从第二网页页面中获取第三层URL,第三层URL包括与H5游戏对应的URL;
第三抓取单元615,用于通过网络爬虫抓取第三层URL对应的第三网页页面,将第三网页页面确定为目标网页页面。
抓取模块610,还包括:
提取单元616和添加单元617;
提取单元616,用于从第二网页页面中提取游戏名和游戏简介信息;
添加单元617,用于将游戏简介信息添加至与游戏名对应的游戏详情信息中。
提取模块640,包括:
第一提取单元641和/或第二提取单元642和/或第三提取单元643;
第一提取单元641,用于根据预先设置的数据采集规则,采集渲染后的网页页面中与数据采集规则匹配的网页数据;对网页数据进行数据挖掘,获取H5游戏对应的游戏详情信息;
第二提取单元642,用于根据预先训练出的机器学习模型,从渲染后的网页页面中提取H5游戏对应的游戏详情信息;
第三提取单元643,用于对渲染后的网页页面进行视觉分析,检测渲染后的网页页面中是否包含H5游戏对应的游戏详情信息;若包含,则根据视觉分析的分析结果,将H5游戏对应的游戏详情信息和渲染后的网页页面的背景图像分离,提取H5游戏对应的游戏详情信息。
提取模块640,包括:
建立单元644、第三获取单元645、匹配单元646和第四提取单元647;
建立单元644,用于根据网页源代码,建立渲染后的网页页面的文档对象模型树结构,文档对象模型树结构包括一个或多个节点;
第三获取单元645,用于获取游戏网站的至少一个模板,模板是文档对象模型树结构的;
匹配单元646,用于从模板中选择游戏详情信息的路径信息,并将游戏详情信息的路径信息与文档对象模型树结构中的各个节点进行匹配;
第四提取单元647,用于若匹配成功,则提取渲染后的网页页面中与路径信息对应的游戏详情信息。
该装置,还包括:
第一获取模块650和第一确定模块660;
第一获取模块650,用于获取n个抓取服务器与游戏网站之间的通信时间,n为大于1的整数;
第一确定模块660,用于确定通信时间最短的抓取服务器作为本次使用的抓取服务器。
该装置,还包括:
第二获取模块670和第二确定模块680;
第二获取模块670,用于获取与游戏网站对应的n个游戏服务器之间的通信时间;
第二确定模块680,用于确定通信时间最短的游戏服务器作为本次抓取的游戏服务器。
该装置,还包括:
设置模块690,用于设置TCP拥塞窗口的初始值为预设阈值,预设阈值是用于接收抓取到的目标网页页面时所需要的经验上限值。
综上所述,本实施例通过抓取游戏网站上的目标网页页面;根据目标网页页面的网页源代码,识别H5游戏对应的网页页面;对H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;从渲染后的网页页面中提取H5游戏对应的游戏详情信息;使得抓取服务器能够根据网页源代码识别出H5游戏对应的网页页面,从渲染后的该网页页面中提取出H5游戏对应的游戏详情信息,避免了抓取结果需要大量人工来筛选和信息提取的问题,达到了根据网页的源代码准确识别H5游戏对应的网页页面,进行从网页页面中提取游戏详情信息,从而提高提取过程的效率和准确率的效果。
请参考图8,其示出了本发明一个实施例提供的服务器的结构框架图。该服务器可以是分析服务器,也可以是抓取服务器,还可以是游戏服务器。具体来讲:所述服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的***存储器804,以及连接***存储器804和中央处理单元801的***总线805。所述服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)806,和用于存储操作***813、应用程序814和其他程序模块815的大容量存储设备807。
所述基本输入/输出***806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中所述显示器808和输入设备809都通过连接到***总线805的输入输出控制器810连接到中央处理单元801。所述基本输入/输出***806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备807通过连接到***总线805的大容量存储控制器(未示出)连接到中央处理单元801。所述大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,所述大容量存储设备807可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器804和大容量存储设备807可以统称为存储器。
根据本发明的各种实施例,所述服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在所述***总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机***(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的网页抓取方法所执行的全部或部分步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的网页抓取方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种网页抓取方法,其特征在于,所述方法包括:
抓取游戏网站上的目标网页页面;
根据所述目标网页页面的网页源代码,识别H5游戏对应的网页页面;
对所述H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;
从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
其中,所述游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标网页页面的网页源代码,识别H5游戏对应的网页页面,包括:
检测所述目标网页页面的网页源代码是否符合预定条件;
若所述网页源代码符合所述预定条件,则将所述网页页面识别为所述H5游戏对应的网页页面;
其中,所述预定条件中的至少一种条件:
所述网页页面的主题名称与预设游戏关键字匹配;和/或,
携带有采用预定渲染技术的代码,所述预定渲染技术包括canvas和WebGL中的至少一种;和/或,
携带有预定游戏引擎对应的代码,所述预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述预定条件包括至少两种条件;
检测所述目标网页页面的网页源代码是否符合预定条件,包括:
检测所述目标网页页面的网页源代码是否符合第i种条件;
根据检测结果和如下公式计算所述网页源代码是所述H5游戏对应的网页页面的概率值:
检测所述概率值是否大于预设阈值;
若所述概率值大于所述预设阈值,则确定所述网页源代码符合所述预定条件;
其中,y表示所述概率值,ai表示第i种所述条件对应的权值,当所述网页源代码符合所述第i种条件时,bi的取值为大于0的预定值,当所述网页源代码不符合所述第i种条件时,bi的取值为0,1≤n≤N,N为所述预定条件的个数。
4.根据权利要求1所述的方法,其特征在于,所述抓取游戏网站上的目标网页页面,包括:
通过网络爬虫抓取所述游戏网站的第一层URL对应的第一网页页面;
从所述第一网页页面中获取第二层URL,所述第二层URL是与游戏分类对应的URL;
通过所述网络爬虫抓取所述第二层URL对应的第二网页页面;
从所述第二网页页面中获取第三层URL,所述第三层URL包括与所述H5游戏对应的URL;
通过所述网络爬虫抓取所述第三层URL对应的第三网页页面,将所述第三网页页面确定为所述目标网页页面。
5.根据权利要求4所述的方法,其特征在于,所述通过所述网络爬虫抓取所述第二层URL对应的第二网页页面之后,还包括:
从所述第二网页页面中提取所述游戏名和游戏简介信息;
将所述游戏简介信息添加至与所述游戏名对应的所述游戏详情信息中。
6.根据权利要求1所述的方法,其特征在于,所述从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息,包括:
根据预先设置的数据采集规则,采集所述渲染后的网页页面中与所述数据采集规则匹配的网页数据;对所述网页数据进行数据挖掘,获取所述H5游戏对应的游戏详情信息;
和/或,
根据预先训练出的机器学习模型,从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
和/或,
对所述渲染后的网页页面进行视觉分析,检测所述渲染后的网页页面中是否包含所述H5游戏对应的游戏详情信息;若包含,则根据所述视觉分析的分析结果,将所述H5游戏对应的游戏详情信息和所述渲染后的网页页面的背景图像分离,提取所述H5游戏对应的游戏详情信息。
7.根据权利要求1所述的方法,其特征在于,所述从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息,包括:
根据所述网页源代码,建立所述渲染后的网页页面的文档对象模型树结构,所述文档对象模型树结构包括一个或多个节点;
获取所述游戏网站的至少一个模板,所述模板是文档对象模型树结构的;
从所述模板中选择所述游戏详情信息的路径信息,并将所述游戏详情信息的路径信息与所述文档对象模型树结构中的各个节点进行匹配;
若匹配成功,则提取所述渲染后的网页页面中与所述路径信息对应的所述游戏详情信息。
8.根据权利要求1至7任一所述的方法,其特征在于,所述抓取游戏网站上的目标网页页面之前,还包括:
获取n个抓取服务器与所述游戏网站之间的通信时间,n为大于1的整数;
确定所述通信时间最短的所述抓取服务器作为本次使用的抓取服务器。
9.根据权利要求1至7任一所述的方法,其特征在于,所述抓取游戏网站上的目标网页页面之前,还包括:
获取与所述游戏网站对应的n个游戏服务器之间的通信时间;
确定所述通信时间最短的所述游戏服务器作为本次抓取的游戏服务器。
10.根据权利要求1至7任一所述的方法,其特征在于,所述抓取游戏网站上的目标网页页面之前,还包括:
设置TCP拥塞窗口的初始值为预设阈值,所述预设阈值是用于接收抓取到的所述目标网页页面时所需要的经验上限值。
11.一种网页抓取装置,其特征在于,所述装置包括:
抓取模块,用于抓取游戏网站上的目标网页页面;
识别模块,用于根据所述目标网页页面的网页源代码,识别H5游戏对应的网页页面;
渲染模块,用于对所述H5游戏对应的网页页面进行动态渲染,得到渲染后的网页页面;
提取模块,用于从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
其中,所述游戏详情信息包括游戏名、游戏图标、游戏运行图片、游戏详情、游戏运行地址、游戏类型中的至少一种。
12.根据权利要求11所述的装置,其特征在于,所述识别模块,包括:
检测单元和识别单元;
所述检测单元,用于检测所述目标网页页面的网页源代码是否符合预定条件;
所述识别单元,用于若所述网页源代码符合所述预定条件,则将所述网页页面识别为所述H5游戏对应的网页页面;
其中,所述预定条件中的至少一种条件:
所述网页页面的主题名称与预设游戏关键字匹配;和/或,
携带有采用预定渲染技术的代码,所述预定渲染技术包括canvas和WebGL中的至少一种;和/或,
携带有预定游戏引擎对应的代码,所述预定游戏引擎包括Egret白鹭引擎,cocos2dx-js引擎,Game Maker Studio引擎,Construct 2引擎中的至少一个。
13.根据权利要求12所述的装置,其特征在于,所述预定条件包括至少两种条件;
所述检测单元,包括:
第一检测子单元、计算子单元、第二检测子单元和确定子单元;
所述第一检测子单元,用于检测所述目标网页页面的网页源代码是否符合第i种条件;
所述计算子单元,用于根据检测结果和如下公式计算所述网页源代码是所述H5游戏对应的网页页面的概率值:
所述第二检测子单元,用于检测所述概率值是否大于预设阈值;
所述确定子单元,用于若所述概率值大于所述预设阈值,则确定所述网页源代码符合所述预定条件;
其中,y表示所述概率值,ai表示第i种所述条件对应的权值,当所述网页源代码符合所述第i种条件时,bi的取值为大于0的预定值,当所述网页源代码不符合所述第i种条件时,bi的取值为0,1≤n≤N,N为所述预定条件的个数。
14.根据权利要求11所述的装置,其特征在于,所述抓取模块,包括:
第一抓取单元、第一获取单元、第二抓取单元、第二获取单元和第三抓取单元;
所述第一抓取单元,用于通过网络爬虫抓取所述游戏网站的第一层URL对应的第一网页页面;
所述第一获取单元,用于从所述第一网页页面中获取第二层URL,所述第二层URL是与游戏分类对应的URL;
所述第二抓取单元,用于通过所述网络爬虫抓取所述第二层URL对应的第二网页页面;
所述第二获取单元,用于从所述第二网页页面中获取第三层URL,所述第三层URL包括与所述H5游戏对应的URL;
所述第三抓取单元,用于通过所述网络爬虫抓取所述第三层URL对应的第三网页页面,将所述第三网页页面确定为所述目标网页页面。
15.根据权利要求14所述的装置,其特征在于,所述抓取模块,还包括:
提取单元和添加单元;
所述提取单元,用于从所述第二网页页面中提取所述游戏名和游戏简介信息;
所述添加单元,用于将所述游戏简介信息添加至与所述游戏名对应的所述游戏详情信息中。
16.根据权利要求11所述的装置,其特征在于,所述提取模块,包括:
第一提取单元和/或第二提取单元和/或第三提取单元;
所述第一提取单元,用于根据预先设置的数据采集规则,采集所述渲染后的网页页面中与所述数据采集规则匹配的网页数据;对所述网页数据进行数据挖掘,获取所述H5游戏对应的游戏详情信息;
所述第二提取单元,用于根据预先训练出的机器学习模型,从所述渲染后的网页页面中提取所述H5游戏对应的游戏详情信息;
所述第三提取单元,用于对所述渲染后的网页页面进行视觉分析,检测所述渲染后的网页页面中是否包含所述H5游戏对应的游戏详情信息;若包含,则根据所述视觉分析的分析结果,将所述H5游戏对应的游戏详情信息和所述渲染后的网页页面的背景图像分离,提取所述H5游戏对应的游戏详情信息。
17.根据权利要求11所述的装置,其特征在于,所述提取模块,包括:
建立单元、第三获取单元、匹配单元和第四提取单元;
所述建立单元,用于根据所述网页源代码,建立所述渲染后的网页页面的文档对象模型树结构,所述文档对象模型树结构包括一个或多个节点;
所述第三获取单元,用于获取所述游戏网站的至少一个模板,所述模板是文档对象模型树结构的;
所述匹配单元,用于从所述模板中选择所述游戏详情信息的路径信息,并将所述游戏详情信息的路径信息与所述文档对象模型树结构中的各个节点进行匹配;
所述第四提取单元,用于若匹配成功,则提取所述渲染后的网页页面中与所述路径信息对应的所述游戏详情信息。
18.根据权利要求11至17任一所述的装置,其特征在于,所述装置,还包括:
第一获取模块和第一确定模块;
所述第一获取模块,用于获取n个抓取服务器与所述游戏网站之间的通信时间,n为大于1的整数;
所述第一确定模块,用于确定所述通信时间最短的所述抓取服务器作为本次使用的抓取服务器。
19.根据权利要求11至17任一所述的装置,其特征在于,所述装置,还包括:
第二获取模块和第二确定模块;
所述第二获取模块,用于获取与所述游戏网站对应的n个游戏服务器之间的通信时间;
所述第二确定模块,用于确定所述通信时间最短的所述游戏服务器作为本次抓取的游戏服务器。
20.根据权利要求11至17任一所述的装置,其特征在于,所述装置,还包括:
设置模块,用于设置TCP拥塞窗口的初始值为预设阈值,所述预设阈值是用于接收抓取到的所述目标网页页面时所需要的经验上限值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611121344.3A CN108197125B (zh) | 2016-12-08 | 2016-12-08 | 网页抓取方法及装置 |
PCT/CN2017/109752 WO2018103488A1 (zh) | 2016-12-08 | 2017-11-07 | 网页抓取方法及服务器 |
US16/285,836 US10922364B2 (en) | 2016-12-08 | 2019-02-26 | Web crawling method and server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611121344.3A CN108197125B (zh) | 2016-12-08 | 2016-12-08 | 网页抓取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108197125A true CN108197125A (zh) | 2018-06-22 |
CN108197125B CN108197125B (zh) | 2020-10-09 |
Family
ID=62490687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611121344.3A Active CN108197125B (zh) | 2016-12-08 | 2016-12-08 | 网页抓取方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10922364B2 (zh) |
CN (1) | CN108197125B (zh) |
WO (1) | WO2018103488A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061971A (zh) * | 2019-12-16 | 2020-04-24 | 百度在线网络技术(北京)有限公司 | 用于抽取信息的方法和装置 |
CN111327566A (zh) * | 2018-12-13 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 流媒体数据的确定方法、装置和*** |
CN111538593A (zh) * | 2020-04-21 | 2020-08-14 | 夏邦泽 | 一种基于工业互联网操作***的数据采集方法 |
CN112642157A (zh) * | 2020-12-31 | 2021-04-13 | 广州华多网络科技有限公司 | 代理开发控制方法及其相应的装置、设备、介质 |
CN114139083A (zh) * | 2022-01-06 | 2022-03-04 | 北京百度网讯科技有限公司 | 网页渲染方法、装置及电子设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922366B2 (en) * | 2018-03-27 | 2021-02-16 | International Business Machines Corporation | Self-adaptive web crawling and text extraction |
US11182449B2 (en) * | 2019-09-09 | 2021-11-23 | Microsoft Technology Licensing, Llc | Method and system of re-associating location mappings for uniform resource identifier named objects |
CN111444407B (zh) * | 2020-03-26 | 2023-05-16 | 桂林理工大学 | 一种网络爬虫的页面列表信息自动提取方法及*** |
CN111680206B (zh) * | 2020-08-13 | 2021-09-10 | 云盾智慧安全科技有限公司 | 网络爬虫的识别方法及装置、计算机可读存储介质 |
CN114065094A (zh) * | 2021-11-24 | 2022-02-18 | ***股份有限公司 | 网页操作智能反馈方法、***、装置及可读存储介质 |
US11770420B2 (en) * | 2022-01-20 | 2023-09-26 | Wesley John Boudville | Ghost spiders and zombie avatars in the metaverse |
US11467716B1 (en) * | 2022-01-28 | 2022-10-11 | Microsoft Technology Licensing, Llc | Flexibly identifying and playing media content from any webpage |
CN114817811B (zh) * | 2022-05-07 | 2024-03-19 | 盐城天眼察微科技有限公司 | 一种网站解析方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880607A (zh) * | 2011-07-15 | 2013-01-16 | 舆情(香港)有限公司 | 网络动态内容抓取方法及网络动态内容爬虫*** |
CN102890692A (zh) * | 2011-07-22 | 2013-01-23 | 阿里巴巴集团控股有限公司 | 一种网页信息抽取方法及抽取*** |
CN103365919A (zh) * | 2012-04-09 | 2013-10-23 | 纽海信息技术(上海)有限公司 | 网页解析容器及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001312484A (ja) * | 2000-05-02 | 2001-11-09 | Internatl Business Mach Corp <Ibm> | 高速ウェブサーバ選択方法およびシステム |
US8634840B2 (en) * | 2008-02-12 | 2014-01-21 | Telefonaktiebolaget L M Ericsson (Publ) | Allocation and priority handling of uplink and downlink resources |
CN102054028B (zh) * | 2010-12-10 | 2013-12-25 | 黄斌 | 一种网络爬虫***实现页面渲染功能的方法 |
CN103631794B (zh) * | 2012-08-22 | 2019-05-07 | 百度在线网络技术(北京)有限公司 | 一种用于对搜索结果进行排序的方法、装置与设备 |
US9124668B2 (en) * | 2013-05-20 | 2015-09-01 | Citrix Systems, Inc. | Multimedia redirection in a virtualized environment using a proxy server |
CN103365967B (zh) * | 2013-06-21 | 2017-02-08 | 百度在线网络技术(北京)有限公司 | 一种基于爬虫的自动化差异检测方法及装置 |
CN103473358B (zh) * | 2013-09-26 | 2018-10-09 | 北京奇虎科技有限公司 | 一种搜索引擎抓取网页开放式摘要信息的方法及装置 |
US9665663B2 (en) * | 2014-12-17 | 2017-05-30 | Yahoo! Inc. | Generating user recommendations |
US10207190B2 (en) * | 2015-12-18 | 2019-02-19 | Intel Corporation | Technologies for native game experience in web rendering engine |
-
2016
- 2016-12-08 CN CN201611121344.3A patent/CN108197125B/zh active Active
-
2017
- 2017-11-07 WO PCT/CN2017/109752 patent/WO2018103488A1/zh active Application Filing
-
2019
- 2019-02-26 US US16/285,836 patent/US10922364B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880607A (zh) * | 2011-07-15 | 2013-01-16 | 舆情(香港)有限公司 | 网络动态内容抓取方法及网络动态内容爬虫*** |
CN102890692A (zh) * | 2011-07-22 | 2013-01-23 | 阿里巴巴集团控股有限公司 | 一种网页信息抽取方法及抽取*** |
CN103365919A (zh) * | 2012-04-09 | 2013-10-23 | 纽海信息技术(上海)有限公司 | 网页解析容器及方法 |
Non-Patent Citations (1)
Title |
---|
用户千锋教育,用户仲孙丹寒: "HTML5的网页如何判断", 《百度知道网站》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327566A (zh) * | 2018-12-13 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 流媒体数据的确定方法、装置和*** |
CN111327566B (zh) * | 2018-12-13 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 流媒体数据的确定方法、装置和*** |
CN111061971A (zh) * | 2019-12-16 | 2020-04-24 | 百度在线网络技术(北京)有限公司 | 用于抽取信息的方法和装置 |
CN111538593A (zh) * | 2020-04-21 | 2020-08-14 | 夏邦泽 | 一种基于工业互联网操作***的数据采集方法 |
CN112642157A (zh) * | 2020-12-31 | 2021-04-13 | 广州华多网络科技有限公司 | 代理开发控制方法及其相应的装置、设备、介质 |
CN112642157B (zh) * | 2020-12-31 | 2023-04-28 | 广州华多网络科技有限公司 | 代理开发控制方法及其相应的装置、设备、介质 |
CN114139083A (zh) * | 2022-01-06 | 2022-03-04 | 北京百度网讯科技有限公司 | 网页渲染方法、装置及电子设备 |
CN114139083B (zh) * | 2022-01-06 | 2023-03-14 | 北京百度网讯科技有限公司 | 网页渲染方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US10922364B2 (en) | 2021-02-16 |
CN108197125B (zh) | 2020-10-09 |
US20190188226A1 (en) | 2019-06-20 |
WO2018103488A1 (zh) | 2018-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108197125A (zh) | 网页抓取方法及装置 | |
DE112010002445T9 (de) | Identifizierung von Bots | |
CN105045887B (zh) | 混合模式跨域数据交互的***及其方法 | |
CN105763543B (zh) | 一种识别钓鱼网站的方法及装置 | |
CN109672583A (zh) | 网络监控方法、设备、存储介质及装置 | |
CN104881448B (zh) | 一种地图路径标注方法和装置 | |
CN108829693A (zh) | 一种用户访问轨迹的获取方法、装置及存储介质 | |
CN107203470B (zh) | 页面调试方法和装置 | |
US8868646B2 (en) | Apparatus and method for generating virtual game clients | |
CN107766509A (zh) | 一种网页静态备份的方法和装置 | |
CN109739505A (zh) | 一种用户界面的处理方法和装置 | |
CN103246699A (zh) | 一种基于浏览器的数据访问控制方法和装置 | |
CN114465741B (zh) | 一种异常检测方法、装置、计算机设备及存储介质 | |
CN110083755A (zh) | 一种高仿真解析网页方法、装置和电子设备 | |
CN102799655B (zh) | 一种网页中不良图片信息的处理方法和装置 | |
CN109657459A (zh) | 网页后门检测方法、设备、存储介质及装置 | |
CN104023046B (zh) | 移动终端识别方法和装置 | |
CN104462242B (zh) | 网页回流量统计方法及装置 | |
CN109657125A (zh) | 基于网络爬虫的数据处理方法、装置、设备及存储介质 | |
CN106559498A (zh) | 风控数据收集平台及其收集方法 | |
CN108279970B (zh) | 浏览器内核的切换方法和装置 | |
CN103634338B (zh) | 在线修改网页主域标题的方法、数据处理装置和*** | |
CN104102536B (zh) | 一种数据的展示方法和*** | |
CN106375144B (zh) | 一种基于jsonp跨域获取信息的网络溯源方法 | |
CN112989162A (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 |