一种截取网页内容的方法技术

技术编号:2919089 阅读:307 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种截取网页内容的方法,包括如下步骤:A.用户选择截取目标;B.根据截取目标获取网页内容;C.将获取的网页内容保存到磁盘;所述步骤B包含如下过程:B1.判断步骤A中的所述截取目标是否包含屏幕不可见部分,如不是则转入步骤C,否则继续下一步;B2.计算并获取所述截取目标所包含区域的网页内容后转入步骤C。本发明专利技术的截取网页内容的方法,可以根据用户的选择而截取到屏幕不可见部分的网页内容,从而避免了需要一屏一屏的截取网页内容,方便了用户。

【技术实现步骤摘要】

本专利技术涉及网络
,具体地说涉及。
技术介绍
网络上的资源非常丰富,当用户浏览网页时经常会遇到一些感兴趣的内容,如何将这些内容有选择性地保存下来,非常实用。现在一般的截取方式为包括使用屏幕打印键(print screen)进行全屏拷贝;或者利用一些工具软件比如即时聊天工具QQ,它带有截取网页内容的工具,提供对当前全屏区域内的任意区域进行选择性的截取,但是它们都不能截取滚动页面中没有显示出来的内容,即对于滚动页面中由于屏幕尺寸限制而暂时不可见的部分无法进行截取。为了得到滚屏中的内容,往往是采用多次截取,然后拼凑在一起的方法,这样操作比较麻烦。
技术实现思路
本专利技术就是为了克服以上的不足,提出了,该方法可以根据用户选择而截取到屏幕中不可见部分的网页内容。为实现上述目的,本专利技术的截取网页内容的方法包括如下步骤A、用户选择截取目标;B、根据截取目标获取网页内容;C、将获取的网页内容保存到磁盘;所述步骤B包含如下过程B1、判断步骤A中的所述截取目标是否包含屏幕不可见部分,如不是则转入步骤C,否则继续下一步;B2、计算并获取所述截取目标所包含区域的网页内容后转入步骤C。其中,所述步骤B2包含如下过程B21、计算获取截取目标屏幕可见部分图像并保存到内存;B22、计算截取目标可滚动的下一步位置并将截取目标进行滚动从而得到截取目标的屏幕不可见部分;B23、判断截取目标是否可继续滚动,如是则保存图像到内存后转入B22,否则转入步骤C。所述步骤B21包含如下过程B211、获取截取目标的区域数据;B212、定义一位置和大小与目标区域相同的临时区域;B213、将截取目标的屏幕可见部分与临时区域取交集并根据结果更新临时区域;B214、获取更新后的临时区域相对于截取目标区域的位置;B215、将更新后的临时区域中对应的图像按上步得到的位置存入内存。当所述步骤A为单元截图方式时,所述步骤B1还包含如下过程B11、保存截取目标元素及其位置信息至一数组;B12、获取截取目标父元素及其位置信息并保存至所述数组;B13、将前述两步保存的元素滚动到正好可显示截取目标元素的位置。所述步骤B213和B22是通过遍历所述数组来实现的。当所述步骤A为滚动窗口截图方式时,其包含如下过程A1、用户选择滚动截图方式;A2、向对应页面边界方向自动滚动页面;A3、确定截图区域;A4、获取当前网页的html或body。当所述步骤A为滚动窗口截图方式时,所述步骤B1还包含如下过程首先保存截取目标元素及其当前滚动位置信息;其次将目标元素滚动到正好可显示目标元素的位置。本专利技术的截取网页内容的方法,可以根据用户的选择而截取到屏幕不可见部分的网页内容,从而避免了需要一屏一屏的截取网页内容,方便了用户。本专利技术的特征及优点将通过实施例结合附图进行详细说明。附图说明图1是本专利技术实施例一的单元截图方式的流程图;图2是本专利技术实施例一流程中步骤S的流程图;图3是本专利技术实施例一中目标元素与当前元素区域关系示意图;图4是本专利技术实施例二的滚动窗口截图方式的流程图。具体实施例方式本专利技术的截取网页内容的方法的实施例一如图1所示,其为单元截图方式。首先,用户选择进入单元截图状态,确定截图单元目标。这里的单元指的是网页上的一块特定区域,其大小并不限定。一般网页都是由图片和文字等多种元素综合构成,例如在网页的某一区域为一新闻栏,而在该新闻栏中又包含多条新闻标题,当我们选择某一新闻标题时,该新闻标题的区域称为一个单元,而当我们选定的为新闻栏时,则该新闻栏的区域称为一个单元。根据鼠标所处的位置获取相应的网页元素后判断元素是否可滚动,也即判断是否截取目标包含不可见的区域,例如以上述新闻栏为例,用户现时所处的网页位置只包含该新闻栏的一部分,这时用户选择了该新闻栏作为截取目标,则首先保存该新闻栏的元素及其显示部分相对于整个新闻栏的位置信息到数组A中,此时新闻栏被称为目标元素。之后获取父元素,这是因为在网页编程中采用的是一种层次化的编程方式,可以这样理解这种编程方式,例如上述新闻栏相对于下层的新闻条来说是新闻条的父元素,而整个网页相对于新闻栏来说是新闻栏的父元素,当然实际的网页编程并非一定如此对应,可能某条新闻标题的实际上层指向并非是上述的新闻栏,这里只是更清楚的说明父元素的含义是指选定的目标元素在网页编程源程序中的上层元素。同时实际上也并非只是上述这样新闻标题一新闻栏一网页这样的三层结构,因此需要循环判断直到得到目标元素的顶层元素。在循环中每次获取的父元素同样也要进行判断是否可滚动并记录其元素和滚动位置的上述步骤。然后遍历数组A,将其中的元素滚动到初始位置,即正好可以显示目标元素的位置,其过程如图2所示,通过计算显示区域的位置与其初始位置的偏移量不断滚动元素直至元素滚动到初始位置。此后开始计算截取区域并保存图像到内存,这其中包括如下过程首先获取目标元素的区域数据,接着定义一个等于目标区域的临时区域B,它记录了目标元素区域的左上角坐标和整个区域的宽度和高度。然后遍历数组A中的元素,每遍历到的一个将对其进行操作的元素称为当前元素。其与目标元素的位置关系如图3所示,从前述可知,这些元素包括显示部分和不可见部分。首先取当前元素的显示区域,将此区域与区域B取交集并将结果更新到区域B,对每次遍历到的元素进行同样的更新操作直到遍历结束。此时获取区域B相对于目标元素区域的位置(对区域B左上进行坐标转换即可得到)并将区域B中的图像保存到内存中。下一步类似区域B,定义一个临时区域E,遍历数组A,判断遍历到的元素是否可滚动,如是则进行滚动,此后类似区域B的操作一样不断更新区域E直到找不到至少一个可进行下一步滚动的元素为止,由于受到区域E和每次操作的当前元素的区域大小的限制,对于一个可滚动的元素来说,可能不能在一次滚动中完成整个元素的获取,因此对于一个元素可能要通过滚动程序中设定的元素指针F在每次操作后指向该元素的下一个位置,计算此次滚动得到的区域并保存图像到内存,再循环进行前述不断更新区域E的操作。当遍历数组A再也找不到至少一个可进行下一步滚动的元素之后,将内存中的图像保存到磁盘然后遍历数组A将每个元素恢复到原来的滚动位置。本专利技术的实施例如图2所示,其为滚动窗口截图方式。当用户选择进入这种模式时,首先判断鼠标是否处于网页页面边界区域的位置,之后向对应的页面边界方向自动滚动页面。然后确定截图区域,获取当前的网页的html或body作为目标元素。Html或body为网页编程当中的命令,用于界定网页当中的元素,其用法为网页编程人员所熟知。此后的步骤基本与单元截图方式相似,即首先判断元素是否可滚动,然后保存目标元素及其当前滚动目标位置信息,将元素滚动到起始位置,接着同单元截图方式类似,通过建立临时区域并不断更新的方法获取目标元素的屏幕可见部分及其相对目标元素的位置保存到内存中;然后计算元素可以进行下一步可以滚动的水平和或垂直滚动偏移量,取最小值(目标元素的宽/高,通过目标元素当前显示区域右/下一目标元素总区域右/下这一计算式来获取)。此后判断目标元素是否可继续下一步滚动,如是重复上述滚动获取过程,否则则说明已经完全得到用户选择的截取目标,这时将内存中的位图保存到磁盘上,最后将目标元素恢复到原始的滚动位置。本专利技术的截取网页内本文档来自技高网...

【技术保护点】
一种截取网页内容的方法,包括如下步骤:A、用户选择截取目标;B、根据截取目标获取网页内容;C、将获取的网页内容保存到磁盘;其特征在于,所述步骤B包含如下过程:B1、判断步骤A中的所述截取目标是否包含屏幕不可见部分,如不是则转入步骤C,否则继续下一步;B2、计算并获取所述截取目标所包含区域的网页内容后转入步骤C。

【技术特征摘要】

【专利技术属性】
技术研发人员:林峰
申请(专利权)人:深圳市光芒科技有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1