网页图片的提取方法、装置、客户端装置和电子设备与流程

文档序号:11407246阅读:253来源:国知局
网页图片的提取方法、装置、客户端装置和电子设备与流程

本发明涉及互联网技术领域,更具体地,涉及一种网页图片的提取方法、装置、客户端装置和电子设备。



背景技术:

网页是构成网站的基本元素。文字与图片是构成一个网页的两个最基本的元素。除此之外,网页的元素还包括动画、音乐等。随着互联网技术的发展,网页中包含越来越多的图片资源,,这使得网页更具有视觉冲击力。

面对网页中精美的图片,很多用户希望能够将这些图片保存到本地设备中,以供日后查看。

在现有技术中,用户需要在浏览器中输入网址,等待浏览器下载网页中的内容并呈现网页。然后,用户一张一张选中所要下载的图片,并一张一张地下载、保存所述图片。

另外,对于网页中的某些图片,例如背景图片,如果用户不具备一定的关于浏览器或信息技术的知识,他很难将这些图片保存在本地设备中。

因此,需要提供一种新的技术方案,针对上述现有技术中的至少一个技术问题进行改进。



技术实现要素:

本发明的一个目的是提供一种用于提取网页图片的新技术方案。

根据本发明的第一方面,提供了一种网页图片的提取方法,包括:接收用户指定的网页地址;获取网页地址所指向的网页文件;对网页文件进行处理,以获取网页文件中的页面资源;以及获取所述页面资源中的图片资源,以用于保存于图片资源对应的图片。

可选地或另选地,对网页文件进行处理包括:通过浏览器内核对网页文件进行解析和渲染处理。

可选地或另选地,从经渲染处理的页面资源中获取图片资源,其中,所述图片资源是在渲染处理之后获取的图片资源。

可选地或另选地,通过钩子函数确定完成所述渲染处理以及获取所述页面资源。

可选地或另选地,利用钩子函数调用浏览器内核的页面资源获取接口来获取所述页面资源。

可选地或另选地,获取所述页面资源中的图片资源包括:根据页面资源的类型标识信息,从所述页面资源中获取图片资源。

可选地或另选地,所述图片资源是图片地址,以及所述提取方法还包括:基于所述图片地址,下载对应的图片。

可选地或另选地,还包括:将所述图片保存到文件夹中,其中,以图片的哈希值作为图片文件的文件名。

根据本发明的第二方面,提供了一种网页图片的提取装置,包括:用于接收用户指定的网页地址的单元;用于获取网页地址所指向的网页文件的单元;用于对网页文件进行处理以获取网页文件中的页面资源的单元;以及用于获取所述页面资源中的图片资源以用于保存与图片资源对应的图片的单元。

根据本发明的第三方面,提供了一种客户端装置,被配置成执行根据上述任何一项所述的提取方法。

根据本发明的第四方面,提供了一种电子设备,包括存储器和处理器,其中,所述存储器存储可执行指令,当所述电子设备运行时,所述可执行指令控制所述处理器进行操作以执行根据上述任何一项所述的提取方法。

根据本发明的一个实施例,可以一次性下载网页引用的所有图片,提升了用户体验。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1示出了根据一个实施例的网页图片的提取方法的示意性流程图。

图2示出了根据一个实施例的电子设备的示意性框图。

图3和4示出了提取网页图片的一个例子。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

下面,参照附图描述各个实施例和例子。

<方法>

图1示出了根据本发明的一个实施例的网页图片的提取方法的示意性流程图。

参见图1,在步骤s1100,接收用户指定的网页地址。

所述网页地址例如是网页的统一资源定位符(uniformresourcelocator,简称url)。通过url可以确定资源在互联网上的位置并可以访问互联网上的资源。

在步骤s1200,获取网页地址所指向的网页文件。

所述网页地址所指向的网页文件是根据网页地址获取到的网页文件,例如,html文件。

在步骤s1300,对网页文件进行处理,以获取网页文件中的页面资源。

在步骤s1400,获取页面资源中的图片资源,以用于保存与图片资源对应的图片。

所述页面资源例如是文本文档、插件、图片等,也可以是它们的地址。

例如,可以直接从诸如html文件的网页文件中获取各个地址以及图片的地址,并通过图片地址获取图片。

在一个实施例中,对网页文件进行处理时,可以调用浏览器进程,利用浏览器内核对网页文件进行解析和渲染处理。所述图片资源是在渲染处理之后获取的图片资源。

例如,在利用浏览器内核对网页文件的解析和渲染处理之后,通过钩子函数确定浏览器内核完成对网页文件的渲染处理。

通过钩子函数从渲染处理后的网页文件中获取页面资源。例如,在浏览器设置有页面资源获取接口(例如,window.performance.getentriesbytype("resource"))。钩子函数可以通过调用该页面资源获取接口来获取页面资源。该页面资源包含需要展示的内容,例如,该网页的文本、图片和视频动画等。

在一个例子中,使用node.js进程获取图片。例如,钩子函数可以向node.js进程发送消息,将图片地址发送给node.js进程,以便下载和保存图片。

页面资源的类型可能为多种,例如,文本类型资源、图片类型资源和视频动画类型资源等。例如,图片资源的类型标识信息为“img”。可以基于页面资源中的“img”标识信息,确定图片资源。

在一个例子中,图片资源是图片地址,例如,图片的url。可以基于图片地址,下载对应的图片。例如,可以获取图片地址的列表,并基于列表中的内容下载图片。

在现有技术中,当用户手动获取网页中的图片时,用户会直接查找网页的源html文件。但是,通过这种方式有时很难得到期望的图片,这给用户带来许多困扰。发明人发现,很多图片资源(例如背景图片)不能直接从源html中获取。在这个实施例中,在浏览器内核对网页进行解析和渲染处理之后,获取图片。通过这种方式,可以获取更多的图片,从而为用户带来更加良好的使用体验。

在一个实施例中,在瞎子图片地址对应的图片后,可以将图片保存到文件夹中。该文件夹可以是默认的文件夹,或者,还可以是用户预先指定的文件夹。

现在,网页的规模越来越大,很多网页中的图片资源被存储在网络上的不同位置。在这种情况下,很可能不同的图片文件具有相同的文件名。当将这些文件存储在同一个文件夹中时,相同文件名的文件会产生冲突。如果要求用户手动解决这种冲突的话,这可能会给用户带来不便。此外,用户有时也很难发现两幅图片之间的区别。

另外,也还会出现,相同文件具有不同文件名的情况。如果要求用户手动删除重复的图片的话,用户可能会考虑两幅图图片是否真的有所不同,这会给用户带来困扰。

在一个实施例中,在将图片保存到文件夹中时,以图片的哈希值作为图片文件的文件名。通过这种方式,可以避免不同图片文件的相互覆盖,另外也可以避免相同图片文件的重复存储。

通过本发明的实施例提供的技术方案,提供了一种下载网页中的图片的方式,这可以提升了用户体验。

在现有技术中,通常对对网页原代码进行分析,根据正则表达式匹配图片链接,以获取图片。由于在网页呈现过程中,网页资源不断发生迭代,因此,网页源代码中的很多链接可能被废弃。此外,现有技术的方案很难获取通过动态javascript获取的图片。

根据上述实施例,可以帮助用户保存针对网页实际下载的图片。这样保存图片的方式更精确。例如,所保存的图片能够更准确地对应用户浏览网页时所看到的界面。

<设备>

本领域技术人员应当理解,在电子技术领域中,可以通过软件、硬件以及软件和硬件结合的方式,将上述方法体现在产品中。本领域技术人员很容易基于上面公开的方法,产生一种网页图片的提取装置。该装置可以包括用于实现前面所述的各个实施例中的网页图片的提取方法的各个操作的单元。例如,该装置可以包括:用于接收用户指定的网页地址的单元;用于获取网页地址所指向的网页文件的单元;用于对网页文件进行处理以获取网页文件中的页面资源的单元;以及用于获取所述页面资源中的图片资源以用于保存与图片资源对应的图片的单元。

<客户端装置>

本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。从这个方面来说,在这个实施例中,还提供了一种客户端装置,被配置成执行前面所述的各个实施例中的网页图片的提取方法的各个操作。

<电子设备>

图2示出了根据本发明的一个实施例的电子设备的示意性框图。

如图2所示,电子设备2000可以包括处理器2010、存储器2020、接口装置2030、通信装置2040、显示装置2050、输入装置2060、扬声器2070、麦克风2080,等等。

处理器2010例如可以是中央处理器cpu、微处理器mcu等。存储器2020例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2030例如包括usb接口、耳机接口等。

通信装置2040例如能够进行有有线或无线通信。

显示装置2050例如是液晶显示屏、触摸显示屏等。输入装置2060例如可以包括触摸屏、键盘等。用户可以通过扬声器2070和麦克风2080输入/输出语音信息。

图2所示的电子设备仅是解释性的,并且决不是为了要限制本发明、其应用或用途。

在这个实施例中,所述存储器2020用于存储可执行指令。当所述电子设备运行时,所述可执行指令用于控制所述处理器2010进行操作以执行前面所述的各个实施例中的网页图片的提取方法的各个操作。例如,所述可执行指令用于控制所述处理器2010进行如下操作:接收用户指定的网页地址;获取网页地址所指向的网页文件;对网页文件进行处理,以获取网页文件中的页面资源;以及获取所述页面资源中的图片资源,以用于保存与图片资源对应的图片。本领域技术人员应当理解,尽管在图2中示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,处理器2010和存储器2020等。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

<例子>

下面参照图3、4描述提取网页图片的一个例子。

如图3所示,用户在客户端装置300中的网页地址框301的相应位置处输入所要获取图片的网页地址。

所述网页地址例如是网页的统一资源定位符(uniformresourcelocator,简称url),例如,http://www.baidu.com。

客户端装置300可以启动浏览器进程和node.js进程。所述浏览器进程可以在后台运行。

浏览器进程基于网页地址从网络获取网页文件。浏览器进程利用浏览器内核对网页文件进行解析和渲染处理。浏览器内核例如可以是ie内核、chrome内核等。

例如,可以在浏览器进程中插入钩子函数(hook)。所述钩子函数例如可以是一段javascrip程序。可以在浏览器内核对网页进行渲染处理之前运行所述钩子函数。所述钩子函数用于监听浏览器内核的处理,并获取相应的网页信息。

浏览器内核对网页文件进行渲染处理。当完成渲染处理时,所述钩子函数可以访问页面资源获取接口,例如,window.performance.getentriesbytype("resource"),以获取页面资源。在这里,在完成渲染处理之后,获取图片资源,从而可以获取网页中的全部图片资源。

例如,在所获取的页面资源中,基于诸如img的类型标识信息,获取图片资源。

例如,所述客户端装置300可以利用node.js运行环境。可以利用node.js进程与浏览器进程进行通信。在node.js进程中,获取图片列表及其相应的图片地址。

图4是基于所获取的图片地址下载图片的示意图。如图4所示,在客户端装置300中,可以在“选择存放路径”302项目中设置图片的存放位置。在“抓取图片”303项目中示出了抓取图片的情况。例如,所抓取的图片地址为“https://www.baidu.com/img/baidu_igylogo3.gif”和“https://www.baidu.com/img/bd_logo1.png”。

例如,当下载图片之后,可以用图片的哈希值作为图片文件的文件名进行保存。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1