一种动态网页的采集方法及装置 【技术领域】
本发明涉及互联网技术, 特别涉及一种动态网页的采集方法及装置。背景技术 随着互联网技术的发展, 用户可以通过互联网获取各种各样的信息。当要从互联 网获取网页时, 作为搜索引擎的重要组成部分, 采集模块负责从互联网上获取网页数据。
目前, 网页分为静态网页和动态网页, 其中, 静态网页指的是预先编译好存储在服 务器上, 服务器中没有针对该网页的数据库, 该网页不含程序和不可交互, 直接通过链接地 址链接到该预先编译的静态网页所在服务器上采集即可 ; 而动态网页是在服务器上设置针 对该网页的数据库和程序, 用户需要通过和服务器的交互, 对网页内容进行采集及修改。
采集静态网页的装置如图 1 所示, 包括采集模块、 网页解析模块、 及索引模块。
具体地说, 采集模块, 用于根据预先给定的链接地址, 与提供要采集的静态网页信 息的服务器并建立链接, 下载该服务器上的超文本链接标识语言源文件后发送给解析模 块, 该文件用于描述静态网页 ;
网页解析模块, 用于对该服务器上的超文本链接标识语言源文件进行解析, 获取 网页的正文数据, 发送给索引模块 ; 同时获取网页内部包含的进一步要下载的静态网页的 多个链接后, 按照预先设定的规则进行查重、 筛选及排序后, 形成待采集链接库提供给采集 模块 ;
索引模块, 用于对网页解析模块输出的网页正文建立索引, 供搜索引擎检索使用。
在这个过程中, 采集每一个静态网页, 都需要和具有该静态网页的服务器之间建 立通信, 从该服务器上获取到该静态网页。
上述方法仅针对静态网页的采集, 而无法采集动态网页。 但是, 目前互联网上的动 态网页占很大比重, 尤其是 web2.0 的出现, 给动态网页的采集带来了很大挑战。
发明内容
有鉴于此, 本发明提供一种动态网页的采集方法, 该方法能够采集动态网页。 本发明还提供一种动态网页的采集装置, 该装置能够采集动态网页。 为达到上述目的, 本发明实施例的技术方案具体是这样实现的 : 一种动态网页的采集方法, 在客户端侧预先设置模拟用户行为功能, 该方法还包括: 客户端侧和提供动态网页信息的服务器建立链接 ;
客户端侧通过预先设置的模拟用户行为功能下载动态网页信息 ;
客户端侧通过设置的模拟用户行为功能对下载的动态网页信息中的表项解析、 填 写并发送给服务器 ;
客户端侧从该服务器中得到的链接地址采集动态网页。
所述在客户端侧预先设置模拟用户行为功能为 : 在客户端侧预先设置具有配置文
件的动态网页采集器。
所述采集器采用 HTMLUNIT 工具、 JUnit 工具或 Selenium 工具实现。
所述动态网页为论坛类的动态网页时, 所述配置文件包括获取动态网页信息的链 接地址、 动态网页类别及表项内容, 其中,
所述客户端侧和提供动态网页信息的服务器建立链接是根据配置文件中的获取 动态网页信息的链接地址建立的 ;
所述对下载的动态网页信息中的表项填写是根据配置文件中的表项内容填写的。
所述动态网页为检索类的动态网页时, 所述配置文件包括获取动态网页信息的链 接地址、 动态网页类别及动态网页中的内容路径, 其中,
所述客户端侧和提供动态网页信息的服务器建立链接是根据配置文件中的获取 动态网页信息的链接地址建立的 ;
所述对下载的动态网页信息中的表项填写是根据配置文件中的动态网页中的内 容路径找到对应的内容填写的。
所述内容为商品类别, 所述采集到动态网页为所述各个类别商品的分页。
所述客户端侧从该服务器中得到的链接地址采集动态网页是通过静态网页的采 集方法进行的。 一种动态网页的采集装置, 设置模块、 交互模块及采集模块, 其中,
设置模块, 用于设置模拟用户行为功能 ;
交互模块, 用于和提供动态网页信息的服务器建立链接, 根据设置模块设置的模 拟用户行为功能下载动态网页信息, 对下载的动态网页信息中的表项解析、 填写并发送给 服务器 ; 从服务器中得到采集动态网页的链接地址, 发送给采集模块 ;
采集模块, 用于根据从交互模块得到的链接地址采集动态网页。
所述采集模块还包括第一采集模块, 用于根据从交互模块得到的链接地址通过静 态网页的采集方法采集动态网页。
所述设置模块还包括第一设置模块, 用于设置具有配置文件的动态网页采集器作 为所设置的模拟用户行为功能。
由上述技术方案可见, 本发明在客户端侧预先设置了模拟用户行为功能, 在采集 动态网页时, 首先和提供动态网页信息的服务器建立链接, 通过设置的模拟用户行为功能 下载动态网页信息, 对下载的动态网页信息中的表项解析、 填写并发送给服务器后, 按照静 态网页的采集方法采集到动态网页。因此, 本发明提供的方法及装置可以采集动态网页。
附图说明
图 1 为现有技术采集静态网页的装置示意图 ;
图 2 为本发明提供的采集动态网页的方法流程图 ;
图 3 为本发明提供的采集动态网页的装置示意图 ;
图 4 为本发明提供的采集动态网页的方法实施例流程图。 具体实施方式
为使本发明的目的、 技术方案及优点更加清楚明白, 以下参照附图并举实施例, 对本发明作进一步详细说明。
现有技术中, 无法按照静态网页的采集过程采集动态网页的原因为 : 动态网页的 性质和静态网页的性质不同。动态网页在服务器上并没有以网页的形式存储, 而是以数据 库和程序进行设置, 所以用户在从服务器上采集动态网页时, 在和该服务器建立链接之后, 需要和该服务器进行交互, 比如进行该动态网页信息的表项填写、 选择或确认后发送给该 服务器处理, 然后该服务器才会根据交互的结果, 提供符合用户要求的动态网页给用户。 因 此, 采集动态网页的整个过程都需要用户的参与, 而不像静态网页的采集那样, 直接通过链 接地址链接到提供该静态网页的服务器上即可。
另外, 对于一个动态网页, 不仅可以由一个服务器提供所有的内容, 也可以由多个 服务器提供不同的内容, 比如该动态网页中具有分页时, 这些分页是由不同的服务器提供。 这时在采集一个动态网页时, 就需要首先和提供要采集的动态网页信息的服务器建立链接 后, 和该服务器进行交互, 发送要获取动态网页内容信息给该服务器, 由该服务器确认对应 要获取动态网页内容的链接地址并提供给用户, 用户根据链接地址采集到动态网页中的所 有内容后, 整合得到一个完整的动态网页。
因此, 为了能够采集到动态网页, 本发明在用户使用的客户端侧预先设置了模拟 用户行为功能, 在采集动态网页时, 首先和提供动态网页信息的服务器建立链接, 通过设置 的模拟用户行为功能下载动态网页信息, 对下载的动态网页信息中的表项解析、 填写并发 送给服务器后, 按照静态网页的采集方法采集到动态网页。 这样, 整个采集动态网页需要的 交互过程都由客户端侧设置的模拟用户行为功能完成, 不需要用户参与, 使得采集动态网 页的过程简单。
在客户端侧预先设置的模拟用户行为功能, 实际上就是在客户端侧运行动态网页 的采集器, 该采集器根据设置的程序能够从服务器上采集指定的动态网页信息, 并按照设 置的配置文件和设置的程序对动态网页信息进行填写和解析后, 提交给服务器进行处理后 获取到动态网页中内容的链接地址, 最后该采集器根据获取到的动态网页中内容的链接地 址通过静态网页的采集方法从服务器采集动态网页。 该动态网页的采集器可以采用超文本 链接标示语言单元 (HTMLUNIT) 工具、 J 单元 (JUnit) 工具或命令列表 (Selenium) 工具等 实现。其中, HTMLUNIT 工具、 JUnit 工具或 Selenium 工具等都是测试工具, 进行单元测试。
图 2 为本发明提供的采集动态网页的方法流程图, 在客户端侧设置模拟用户行为 功能, 其具体步骤为 :
步骤 201、 客户端侧和提供动态网页信息的服务器建立链接 ;
在本步骤中, 客户端侧设置模拟用户行为功能在客户端侧设置有配置文件, 根据 该配置文件中的链接地址就可以和提供动态网页信息的服务器建立链接 ;
步骤 202、 客户端侧通过设置的模拟用户行为功能下载动态网页信息 ;
步骤 203、 客户端侧通过设置的模拟用户行为功能对下载的动态网页信息中的表 项解析、 填写并发送给服务器 ;
在本步骤中, 客户端侧设置模拟用户行为功能在客户端侧设置有配置文件, 根据 该配置文件中的填写信息就可以填写动态网页信息中的表项 ;
步骤 204、 客户端侧从该服务器中得到采集动态网页的链接地址, 通过静态网页的 采集方法采集到动态网页 ;在该步骤中, 当服务器接收到这些表项信息后, 就会根据表项信息为客户端提供 动态网页中内容的链接地址, 服务器如何接受表项信息以及根据表项信息获取供动态网页 中内容的链接地址为现有技术, 这里不再累述 ;
在该步骤中, 根据得到采集动态网页的链接地址采集动态网页的过程和采集静态 网页的过程相同, 这里不再累述 ;
在采集得到动态网页后, 就可以按照现有技术对采集得到的动态网页进行检索等 一系列处理, 这个过程和现有技术相同, 这里不再累述。
图 3 为本发明提供的采集动态网页装置的示意图, 包括 : 设置模块、 交互模块及采 集模块, 其中,
设置模块, 用于设置模拟用户行为功能 ;
交互模块, 用于和提供动态网页信息的服务器建立链接, 根据设置模块设置的模 拟用户行为功能下载动态网页信息, 对下载的动态网页信息中的表项解析、 填写并发送给 服务器 ; 从服务器中得到采集动态网页的链接地址, 发送给采集模块 ;
采集模块, 用于根据从交互模块得到的链接地址, 采用静态网页的采集方法采集 动态网页。 在本实施例中, 所述采集模块还包括第一采集模块, 用于根据从交互模块得到的 链接地址通过静态网页的采集方法采集动态网页。
在本实施例中, 所述设置模块还包括第一设置模块, 用于设置具有配置文件的动 态网页采集器作为所设置的模拟用户行为功能。
在本实施例中, 动态网页可以分为两种类型, 一种为论坛类动态网页, 该类动态网 页的所有内容由一个服务器提供, 如可以由提供动态网页信息的服务器提供 ; 另一种为检 索类动态网页, 该类动态网页的所有内容分别由多个服务器提供。本发明采用 HTMLUNIT 工 具为例, 分别说明如何通过客户端侧设置的模拟用户行为功能, 对下载的这两类动态网页 中的表项解析、 填写及发送给服务器后, 得到这两类动态网页。
对于论坛类的动态网页, 先和提供动态网页信息的服务器建立链接, 从该服务器 下载网页信息, 采集网页信息中所有表单, 对所获取的表单遍历子节点, 根据设置的配置文 件遇到文本输入 (textInput) 节点时填入用户名, 遇到密码输入 (passwordInput) 节点时 填写密码, 遇到提交输入 (submitInput) 节点时点击提交按钮, 获取该动态网页的链接地 址, 即统一资源定位 (URL) 后, 根据得到的链接地址采集到这些内容后, 得到该论坛的网 页。
对于检索类的动态网页, 先和提供动态网页信息的服务器建立链接, 从该服务器 下载网页信息, 获取网页信息中检索框所在的表单, 定位到检索内容框和提交按钮, 然后从 设置的配置文件中提取出检索内容, 填入检索内容框并点击提交按钮, 获取该动态网页中 某些内容的链接地址, 即统一资源定位 (URL) 后, 根据得到的链接地址采集到这些内容, 从 而得到完整的动态网页, 在这里, 检索内容可以为商品类别名称, 获取到的这些内容为商品 类型的所有分页。
具体地说, 针对论坛类的动态网页, 获取的步骤为 : 首先, 设置配置文件, 该配置文 件中包括用户名、 密码及对应的输入框信息, 该配置文件是利用运行动态网页的采集器配 置文件维护模块编写的 ; 然后, 客户端侧运行动态网页的采集器, 和具有该动态网页内容的
服务器建立链接, 基于配置文件获得该动态网页的链接地址 ; 最后, 客户端侧根据该链接地 址采集论坛的网页。
针对检索类的动态网页, 获取的步骤为 : 首先, 设置配置文件, 该配置文件中包括 检索信息, 该配置文件是利用运行动态网页的采集器配置文件维护模块编写的 ; 然后, 客户 端侧运行动态网页的采集器, 和具有该动态网页内容的服务器建立链接, 基于配置文件获 得该动态网页中各个要检索内容的链接地址 ; 最后, 客户端侧根据各个内容的链接地址采 集该网站的网页。
在本发明实施例中, 针对论坛类的动态网页, 设置的配置文件的格式为 : URL = XXX TYPE = 1textInput = XXX passwordInput = XXX ;
针对检索类的动态网页, 设置的配置文件的格式为 : URL = XXXTYPE = 1 路径 (PATH) = XXX。
其中, 当 TYPE 为 1 时, 代表要获取的动态网页为论坛类的动态网页, 需要提供用户 名和密码 ; 当 TYPE 为 0 时, 代表要获取的动态网页为检索类的动态网页, 要获取内容信息, 比如商品信息, 提供内容信息的路径。
举一个例子说明, 对于论坛类的动态网页, 设置的配置文件的格式为 : URL = http://bbs.***.com/login.php TYPE = 1textInput = CMRI passwordInput = CMCC888 ; 对于检索类的动态网页, 设置的配置文件的格式为 : URL = http://www.***.com/ TYPE = 0PATH = conf/commodity.txt。在检索类的动态网页中, 还需要提供动态网页中的 检索内容, 比如商品类别, 就是在配置文件中列举出这些类别后分别填写到检索内容框中, 这些检索内容为 : CPU ; CRT 显示器 ; 财会用品 ; 彩妆 ; 彩票 ; 超市卡和 / 或车载 MP3 等, 这些 检索内容由商品类别的路径查找到。
在本发明实施例中, HTMLUNIT 工具实际上是一个扩展测试框架, 该测试框架模拟 用户的行为, 通过设置的配置文件以及在该测试框架下编译的程序对采集器显示的动态网 页元素进行操作。 在这里, 本发明使用它和提供动态网页信息的服务器建立链接, 和服务器 之间进行交互, 模拟用户行为。
图 4 为本发明提供的采集动态网页的方法实施例流程图, 其具体步骤为 :
步骤 401、 客户端侧要获取动态网页, 读取设置的配置文件, 得到要获取动态网页 信息的链接地址及类型, 和提供动态网页信息的服务器建立链接 ;
在本步骤中, 对于不同动态网页采用不同的配置文件, 这些不同的配置文件都预 先配置好, 设置在客户端侧 ; 当客户端侧要访问某个动态网页时, 可以确定对应的配置文件 ( 根据动态网页标识找到 ), 然后读取该对应的配置文件进行操作 ;
步骤 402、 客户端侧确定要采集动态网页为检索类的动态网页还是论坛类的动态 网页, 如果是论坛类的动态网页, 则转入步骤 403 执行, 如果是检索类的动态网页, 则转入 步骤 408 执行 ;
在判断时, 可以根据在步骤 401 中得到的对应配置文件确定, 当 type 为设定的论 坛类的动态网页类型, 比如 1 时, 就确定要采集的动态网页为论坛类的动态网页 ; 当 type 为 设定的检索类的动态网页类型, 比如 0 时, 就确定要采集的动态网页为检索类的动态网页 ;
步骤 403、 客户端侧获取对应配置文件中的用户名及密码 ;
步骤 404、 客户端侧运行 HTMLUNIT, 该 HTMLUNIT 新建一个 webClinet ;
步骤 405、 客户端侧通过 webClinet 根据链接地址从服务器下载动态网页信息, 即 获取 HTMLPAG 类 ;
在本步骤中, 服务器如何根据链接地址提供动态网页信息为现有技术, 这里不再 累述 ;
步骤 406、 客户端侧获取该动态网页信息中的所有表单 ;
步骤 407、 客户端侧对所获取的每个表单, 遍历子节点并对得到的遍历子节点根据 对应配置文件的内容进行对应的解析并填写后, 提交, 即发送给该服务器, 由该服务器提供 给该客户端侧采集动态网页的链接地址, 客户端侧根据该链接地址采集完整的动态网页 ;
在本步骤中, 当子节点为 TextInput, 填写用户名 ; 当子节点为 passwordInput, 填 写密码 ; 当子节点为 CheckBoxInput, 填写默认选项 ; 当子节点为 RadioButtonInput, 填写 默认选项 ; 当子节点为 Select, 遍历所有子节点并发送给服务器, 当子节点为 Anchor, 获取 对应的链接地址 ; 当子节点为 HtmlButton、 HtmlButtonInput 或者 HtmlSubmitInput 时, 提 交以获取链接地址 ;
在本步骤中, 只要有链接地址, 就可以访问对应的服务器下载该动态网页, 从而获 取到完整的动态网页 ; 步骤 408、 客户端侧根据设置的配置文件获取该动态网页的各个内容文件路径, 也 就是从对应的配置文件中获取 ;
在本步骤中, 各个内容可以为商品类别 ;
步骤 409、 客户端侧运行 HTMLUNIT, 该 HTMLUNIT 新建一个 webClinet ;
步骤 410、 客户端侧通过 webClinet 根据链接地址从服务器下载动态网页信息, 即 获取 HTMLPAG 类 ;
步骤 411、 客户端侧获取网页内容中检索框所在的表单, 定位到检索内容框和提交 按钮 ;
在本步骤中, 客户端侧根编译的程序在 HTMLUNIT 下完成该步骤 ;
步骤 412、 客户端侧从设置的配置文件中提取出检索内容, 填入检索内容框并点击 提交按钮, 即将对应的检索内容发送给服务器, 由服务器根据该检索内容提供对应的多个 链接地址, 客户端侧得到该动态网页中所有内容的链接地址 ;
在本步骤中, 检索内容可以为商品类别名称 ;
步骤 413、 客户端侧根据得到的链接地址采集到这些内容, 得到完整的动态网页 ;
在本步骤中, 采集到的这些内容为该动态网页的新分页。
以上举较佳实施例, 对本发明的目的、 技术方案和优点进行了进一步详细说明, 所 应理解的是, 以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的 精神和原则之内, 所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之 内。