收藏 分享(赏)

网络爬虫需求.doc

上传人:精品资料 文档编号:9686186 上传时间:2019-08-23 格式:DOC 页数:15 大小:382.75KB
下载 相关 举报
网络爬虫需求.doc_第1页
第1页 / 共15页
网络爬虫需求.doc_第2页
第2页 / 共15页
网络爬虫需求.doc_第3页
第3页 / 共15页
网络爬虫需求.doc_第4页
第4页 / 共15页
网络爬虫需求.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、课题名称: Web 资源自动获取技术研究与应用(JAVA实现) 学 校: 中 南 大 学 学 院: 信息科学与技术学院 专业班别: 计算机软件专业 NIIT081 姓 名: 谭东方 指导教师: 完成日期: 摘要随 着 网 络 的 迅 速 发 展 , 万 维 网 成 为 大 量 信 息 的 载 体 , 如 何 有 效 地 提 取 并 利 用 这 些 信 息 成为 一 个 巨 大 的 挑 战 。 搜 索 引 擎 (Search Engine), 例 如 传 统 的 通 用 搜 索 引 擎 AltaVista, Yahoo!和 Google 等 , 作 为 一 个 辅 助 人 们 检 索 信 息 的

2、 工 具 成 为 用 户 访 问 万 维 网 的 入口 和 指 南 。 但 是 , 这 些 通 用 性 搜 索 引 擎 也 存 在 着 一 定 的 局 限 性 , 如 : (1) 不 同 领 域 、 不 同 背 景 的 用 户 往 往 具 有 不 同 的 检 索 目 的 和 需 求 , 通 用 搜 索 引 擎 所返 回 的 结 果 包 含 大 量 用 户 不 关 心 的 网 页 。 (2) 通 用 搜 索 引 擎 的 目 标 是 尽 可 能 大 的 网 络 覆 盖 率 , 有 限 的 搜 索 引 擎 服 务 器 资 源 与无 限 的 网 络 数 据 资 源 之 间 的 矛 盾 将 进 一 步

3、加 深 。 (3) 万 维 网 数 据 形 式 的 丰 富 和 网 络 技 术 的 不 断 发 展 , 图 片 、 数 据 库 、 音 频 /视 频多 媒 体 等 不 同 数 据 大 量 出 现 , 通 用 搜 索 引 擎 往 往 对 这 些 信 息 含 量 密 集 且 具 有 一 定 结 构 的数 据 无 能 为 力 , 不 能 很 好 地 发 现 和 获 取 。 (4) 通 用 搜 索 引 擎 大 多 提 供 基 于 关 键 字 的 检 索 , 难 以 支 持 根 据 语 义 信 息 提 出 的 查 询。 为 了 解 决 上 述 问 题 , 定 向 抓 取 相 关 网 页 资 源 的 聚

4、焦 爬 虫 应 运 而 生 。 聚 焦 爬 虫 是 一 个自 动 下 载 网 页 的 程 序 , 它 根 据 既 定 的 抓 取 目 标 , 有 选 择 的 访 问 万 维 网 上 的 网 页 与 相 关 的链 接 , 获 取 所 需 要 的 信 息 。 与 通 用 爬 虫 (generalpurpose web crawler)不 同 , 聚 焦爬 虫 并 不 追 求 大 的 覆 盖 , 而 将 目 标 定 为 抓 取 与 某 一 特 定 主 题 内 容 相 关 的 网 页 , 为 面 向 主题 的 用 户 查 询 准 备 数 据 资 源 。 关 键 字 : 网 络 爬 虫 程 序 ,WEB

5、 爬 虫 ,网 页 蜘 蛛 , 网 络 机 器 人AbstractThis paper first introduces the key techniques and theories which are required in the realization of the extensible Spider, on the basis of which we then use the oriented-object methods to have analyzed and designed a Web Spider with extensibility. Finally, the progr

6、amming work has been realized on the JCreator platform with the Java language. The designing of the extensible Spider is made up of two major parts: the Client crawler and the Server monitor. The Client is responsible for the page-collection job, which receives URL of the web pages to be crawled fro

7、m the server and transmits those out of its crawling range. In order to reduce the response time, the page-collection has borrowed the multithreading technique to improve the systems performance. The URL transition has utilized the “Character Conversion” function of the MD5 algorithm and the “Splitt

8、ing Constructor” of the hashing function. The server monitor takes charge of the arrangement of the active spiders and the transition of the arriving URL: the system would allocate an unique ID for every crawler to realize unified management as well as making a reasonable judgment for every URL from

9、 clients to determine which active spider this URL should be sent to. In the system, the running process, including the start and interruption, of the crawlers is completely controlled by the server, and the server can dynamically supervise the collection status of each of the crawler.It has been pr

10、oved by the experiment that this system has the characteristic of good extensibility. Also, it is capable of adding the active spiders during the running process as well as remembering the collection interruption point .Meanwhile, weve found that the speed of the downloading pages as well as the num

11、ber of the active crawlers is the key factor that would have an effect on the whole systems performance.Keywords: Extensibility; Web Spider; Multithreading; the URL Transition.第 1 章 绪 论 :1.1 课 题 背 景随 着 国 际 互 联 网 ( internet) 的 迅 速 发 展 , 网 上 的 信 息 越 来 越 多 , 全 球 目 前的 网 页 超 过 20 亿 , 每 天 新 增 加 730 万 网 页

12、。 要 在 如 此 浩 瀚 的 信 息 海 洋 里 寻 找信 息 , 就 像 “大 海 捞 针 ”一 样 困 难 。 搜 索 引 擎 正 是 为 了 解 决 这 个 问 题 而 出 现 的技 术 。 搜 索 引 擎 是 通 过 互 联 网 搜 索 信 息 的 重 要 途 径 。 它 要 用 到 信 息 检 索 、 人 工智 能 、 计 算 机 网 络 、 分 布 式 处 理 、 数 据 库 、 数 据 挖 掘 、 数 字 图 书 馆 、 自 然 语 言处 理 等 多 领 域 的 理 论 和 技 术 , 具 有 很 高 的 综 合 性 和 很 强 的 挑 战 性 。 本 文 研 究 的内 容 是

13、 作 为 搜 索 引 擎 关 键 的 一 部 分 的 网 络 爬 虫 , 首 先 , 简 略 介 绍 一 下 搜 索 引擎 。1.1.1 搜 索 引 擎 的 分 类 和 整 体 结 构搜 索 引 擎 虽 然 所 采 用 的 技 术 和 实 现 的 方 法 各 有 不 同 , 但 是 总 体 来 说 可 以 分为 两 类 , 一 种 是 基 于 目 录 的 搜 索 引 擎 , 另 一 种 是 基 于 全 文 检 索 的 搜 索 引 擎 。早 期 的 搜 索 引 擎 很 多 都 是 基 于 目 录 的 搜 索 引 攀 , 由 于 人 工 干 预 较 多 , 故 在覆 盖 的 范 围 上 要 远 远

14、 的 小 于 基 于 信 息 采 集 器 的 搜 索 引 擎 。 一 般 来 说 , 由 于 使 用了 人 (专 家 )来 对 网 站 进 行 归 纳 和 分 类 , 网 站 分 类 技 术 为 网 络 信 息 导 航 带 来 了 极大 的 方 便 , 广 受 人 们 的 欢 迎 。 但 是 它 的 缺 陷 除 了 成 本 较 高 之 外 , 对 网 站 的 描 述也 十 分 简 略 , 其 描 述 能 力 不 能 深 入 网 站 的 内 部 细 节 , 因 此 用 户 查 询 不 到 网 站 内部 的 重 要 信 息 , 造 成 了 信 息 丢 失 1。 例 如 : 如 果 对 一 个 进

15、行 电 脑 硬 件 销 售 站 点的 目 录 分 为 是 商 业 与 经 济 公 司 电 脑 硬 件 公 司 。 对 其 描 述 为 “显 示 器 、 电 源 、硬 盘 内 存 等 销 售 ”。 用 户 在 以 “显 示 器 ”、 “硬 盘 ”为 关 键 字 进 行 检 索 时 , 就能 检 索 到 。 但 如 果 该 站 点 中 还 包 含 有 对 于 主 板 和 显 卡 的 介 绍 , 用 户 在 检 索 “主板 ”、 “显 卡 ”时 , 就 无 法 检 索 到 了 。 同 时 , 对 于 基 于 目 录 的 搜 索 引 擎 技 术 而言 , 其 覆 盖 范 围 相 对 与 基 于 全 文

16、 检 索 的 搜 索 引 擎 而 言 十 分 有 限 。目 前 , 在 国 内 外 各 主 要 商 业 搜 索 引 擎 在 技 术 上 主 要 使 用 了 全 文 检 索 技 术 ,下 面 对 基 于 使 用 全 文 检 索 技 术 的 搜 索 引 擎 进 行 讨 论 。基 于 全 文 检 索 技 术 的 搜 索 引 擎 主 要 由 三 部 分 组 成 , 如 图 1-1 所 示 , 信 息 采集 器 ( 网 络 爬 虫 ) , 索 引 器 、 搜 索 接 口 。图 1-1 搜 索 引 擎 的 基 本 构 成信 息 采 集 器 : 主 要 功 能 就 是 搜 集 互 联 网 上 的 信 息 资

17、 源 ( 主 要 是 网 页 和 文 字信 息 资 源 ) 。 运 行 信 息 采 集 器 时 , 只 要 提 供 极 少 量 的 起 始 网 页 , 信 息 采 集 器 就能 够 按 一 定 的 规 则 沿 着 网 页 上 的 超 级 链 接 在 网 络 上 漫 游 , 收 集 资 源 信 息 , 直 至遍 历 整 个 网 站 。 它 的 性 能 在 很 大 程 度 上 影 响 了 搜 索 引 擎 站 点 的 规 模 。 这 部 分 是本 论 文 要 讨 论 的 重 点 。索 引 器 : 由 信 息 采 集 器 从 网 上 取 来 的 信 息 杂 乱 无 章 , 如 果 把 它 们 直 接

18、用 于查 询 , 效 率 将 极 为 低 微 。 索 引 器 的 主 要 功 能 就 是 分 析 收 集 的 信 息 , 建 立 索 引 库以 供 查 询 。 它 主 要 用 到 的 技 术 有 分 词 、 索 引 词 选 取 、 停 用 词 过 滤 、 索 引 归 并 、索 引 压 缩 、 索 引 更 新 、 倒 排 文 件 缓 存 。查 询 接 口 : 它 是 用 户 与 搜 索 引 擎 的 接 口 。 它 通 常 是 一 个 Web 应 用 程 序 , 主要 负 责 接 收 、 解 释 用 户 的 请 求 、 查 询 索 引 库 以 及 返 回 排 序 后 的 搜 索 结 果 。 它 的

19、用 户 界 面 友 好 与 否 是 用 户 能 否 最 大 限 度 地 使 用 搜 索 引 擎 功 能 的 关 键 。信 息 采 集 模 块 主 动 派 出 信 息 采 集 器 进 行 自 动 搜 索 , 信 息 采 集 器 自 动 地 在 网上 漫 游 , 从 一 个 URL 或 一 组 URL 开 始 , 访 问 该 URL, 记 录 该 URL 所 指 文 件 中 所有 新 的 URL。 然 后 再 以 这 些 新 URL 的 为 起 点 , 继 续 进 行 本 地 索 引 , 直 到 再 没 有满 足 条 件 的 新 URL 为 止 。 对 于 一 些 新 出 现 的 网 站 或 在

20、自 动 搜 索 中 有 所 遗 漏 的 站点 , 用 户 也 可 以 自 行 向 搜 索 引 擎 提 交 网 站 地 址 , 使 得 站 点 内 容 能 被 及 时 得 以 搜索 。 得 到 网 页 内 容 后 , 信 息 预 处 理 模 块 过 滤 文 件 系 统 信 息 , 为 文 件 系 统 的 表 达提 供 各 种 满 意 的 索 引 输 出 , 获 取 最 优 的 索 引 记 录 , 使 用 户 能 很 容 易 地 检 索 到 所需 信 息 。 信 息 预 处 理 模 块 要 完 成 以 下 一 些 功 能 : 格 式 过 滤 、 词 语 切 分 、 词 性 标注 和 短 语 识 别

21、 等 。最 后 这 些 被 处 理 完 的 信 息 被 送 入 一 个 数 据 库 中 , 使 用 者 在 执 行 查 询 时 , 实际 上 是 从 这 一 数 据 库 中 寻 找 匹 配 网 页 、 或 资 料 的 过 程 。全 文 检 索 己 是 一 个 比 较 成 熟 的 技 术 , 它 能 够 解 决 对 大 量 网 页 细 节 的 检 索 问题 。 从 理 论 上 说 , 只 要 网 页 上 出 现 了 某 个 关 键 词 ( 如 果 是 中 文 , 这 个 关 键 词 必须 是 一 个 词 或 者 是 词 的 组 合 ) , 就 能 够 使 用 全 文 检 索 用 关 键 词 匹

22、配 把 该 网 页 查出 来 。1.1.2 网 络 爬 虫 研 究 现 状网 络 爬 虫 , 又 称 为 Robots, Spiders 以 及 Wanderers, 几 乎 与 网 络 同 时 出 现 。第 一 个 网 络 爬 虫 是 Matthew Gray 的 Wanderer, 出 现 于 1993 的 春 天 。 在 头 两 届 国际 万 维 网 会 议 上 出 现 过 数 篇 关 于 网 络 爬 虫 的 论 文 , 如 文 献 24。 但 是 那 时 候 互联 网 上 的 信 息 规 模 比 现 在 要 小 得 多 , 那 些 文 章 中 并 没 有 阐 述 如 何 处 理 现 在

23、 所 面临 的 海 量 网 络 信 息 的 技 术 。 每 个 搜 索 引 擎 的 后 台 , 都 有 相 应 的 网 络 爬 虫 在 工 作着 。 但 是 出 于 互 相 竞 争 的 原 因 , 这 些 网 络 爬 虫 的 设 计 并 没 有 公 开 , 除 了 以 下 3个 : Google Crawler, InternetArchive Crawler 以 及 Mercator5。搜 索 引 擎 Google 中 , 采 用 了 多 台 机 器 进 行 分 布 式 爬 行6。 它 的 网 络 爬 虫 包括 5 个 功 能 模 块 , 分 别 运 行 在 不 同 的 进 程 中 。 一

24、个 URL Server 进 程 负 责 从 一 个文 件 里 读 取 URL( Uniform Resource Locator) , 并 把 它 们 分 发 给 多 个 Crawler 进程 。 每 个 Crawler 进 程 运 行 在 不 同 的 机 器 上 , 采 用 单 线 程 和 异 步 I/O 同 时 从 近300 个 网 站 上 获 取 数 据 。 所 有 的 Crawler 将 下 载 来 的 数 据 传 输 到 同 一 个 StoreServer 进 程 , 它 将 这 些 页 面 压 缩 并 存 放 在 磁 盘 上 。 Indexer 进 程 将 这 些 页 面 从 磁

25、盘 上 读 出 , 它 将 URL 从 HTML 页 面 中 抽 取 出 来 , 并 将 它 们 存 放 在 另 一 个 磁 盘 文件 中 。 一 个 URL Resolver 进 程 读 取 这 个 存 放 链 接 的 文 件 , 将 其 中 的 相 对 链 接 转化 为 绝 对 链 接 , 然 后 存 入 一 个 文 件 , 这 个 文 件 供 URL Server 进 程 读 取 。Internet Archive Crawler 也 使 用 多 台 机 器 进 行 爬 行7。 每 个 Crawler 进 程 可 分配 64 个 站 点 同 时 爬 行 , 并 且 每 个 站 点 最 多

26、 只 分 配 给 一 个 Crawler 来 爬 行 。 每 个单 线 程 的 Crawler 进 程 从 磁 盘 中 读 取 分 配 给 其 爬 行 的 站 点 的 种 子 URL, 把 它 们 发送 到 各 自 站 点 的 爬 行 队 列 中 。 然 后 采 用 异 步 I/O 从 这 些 队 列 读 取 链 接 , 下 载 对-3-哈 尔 滨 工 业 大 学 工 学 硕 士 学 位 论 文应 的 网 页 。 一 旦 一 个 HTML 网 页 下 载 下 来 , Crawler 就 将 包 含 在 其 中 的 链 接 抽 取出 来 。 如 果 链 接 指 向 同 一 个 网 站 , 那 就

27、 将 该 链 接 加 入 到 该 站 点 的 队 列 中 ; 否则 , 就 将 该 链 接 存 放 到 磁 盘 中 。 一 个 批 处 理 进 程 周 期 地 将 这 些 链 接 进 行 过 滤 ,去 除 重 复 链 接 , 并 把 它 们 放 入 相 应 站 点 的 队 列 中 。Mercator 是 一 个 在 可 扩 展 性 方 面 做 得 非 常 出 色 的 Crawler8。 Mercator 完 全用 Java 实 现 。 它 采 用 的 数 据 结 构 可 以 不 管 爬 行 规 模 的 大 小 , 在 内 存 中 只 占 有 限的 空 间 。 这 些 数 据 结 构 的 大 部

28、 分 都 在 磁 盘 上 , 在 内 存 中 只 存 放 有 限 的 部 分 , 伸缩 性 很 强 。 Mercator 采 用 模 块 化 设 计 的 思 想 , 通 过 替 换 以 及 增 减 模 块 可 以 很 方便 地 实 现 各 种 功 能 , 如 进 行 各 类 Web 信 息 统 计 以 及 Web 快 照 , 体 现 了 良 好 的 可扩 展 性 。 Mercator 由 5 个 部 分 构 成 , 分 别 负 责 : 给 即 将 付 诸 下 载 的 URL 进 行 排序 ; 将 主 机 名 解 析 为 IP 地 址 ; 使 用 HTTP 协 议 下 载 文 档 ; 从 HTM

29、L 文 档 中 提 取 链接 ; 检 测 一 个 URL 是 否 已 经 遇 到 过 。一 个 网 络 爬 虫 程 序 通 常 网 络 爬 虫 从 种 子 URL 开 始 , 通 过 网 页 内 容 解 析 ,跟 随 网 页 上 的 超 链 接 进 行 下 载 。 互 联 网 上 的 信 息 更 新 很 快 , 必 须 定 期 更 新 已 经搜 集 过 的 旧 信 息 , 避 免 无 效 链 接 , 同 时 获 取 最 新 信 息 。 只 有 高 效 深 度 的 挖 掘 才能 使 搜 索 引 擎 提 供 全 面 、 即 时 的 服 务 。应 用 于 大 规 模 系 统 的 数 据 采 集 软

30、件 有 两 个 主 要 设 计 要 求 : 一 是 必 须 有 合 理的 挖 掘 策 略 , 主 要 是 何 时 下 载 哪 些 页 面 。 常 用 策 略 包 括 : 主 题 式 挖 掘 , 根 据URL 链 接 分 析 和 网 页 内 容 对 URL 列 表 进 行 主 题 分 类 , 然 后 根 据 类 别 进 行 有 目的 的 挖 掘 ; 分 级 式 挖 掘 , 根 据 站 点 规 模 、 权 威 性 、 数 据 更 新 频 率 等 参 数 将 站 点列 表 进 行 分 级 , 实 现 等 级 式 采 集 。 二 是 必 须 要 有 高 度 优 化 的 采 集 架 构 , 能 高 速下

31、 载 大 量 网 页 , 要 占 用 合 理 的 网 络 流 量 、 具 有 鲁 棒 性 、 易 于 管 理 。 目 前 主 要 采用 服 务 器 集 群 技 术 , 由 中 央 控 制 软 件 进 行 任 务 分 发 、 负 载 平 衡 和 运 行 监 控 。第 2 章 分 布 式 网 络 爬 虫 基 本 构 架本章讨论一个良好的网络爬虫的设计目标,然后讨论单个结点的结构设计,最后讨论分布式网络爬虫的结构设计2.1 聚焦爬虫工作原理网 络 爬 虫 是 一 个 自 动 提 取 网 页 的 程 序 , 它 为 搜 索 引 擎 从 万 维 网 上 下 载 网 页 , 是 搜 索 引 擎的 重 要

32、组 成 。 传 统 爬 虫 从 一 个 或 若 干 初 始 网 页 的 URL 开 始 , 获 得 初 始 网 页 上 的 URL, 在 抓 取 网 页 的 过 程 中 , 不 断 从 当 前 页 面 上 抽 取 新 的 URL 放 入 队 列 ,直 到 满 足 系 统 的一 定 停 止 条 件 , 如 图 1(a)流 程 图 所 示 。 聚 焦 爬 虫 的 工 作 流 程 较 为 复 杂 , 需 要 根 据 一 定的 网 页 分 析 算 法 过 滤 与 主 题 无 关 的 链 接 , 保 留 有 用 的 链 接 并 将 其 放 入 等 待 抓 取 的 URL 队 列 。 然 后 , 它 将

33、根 据 一 定 的 搜 索 策 略 从 队 列 中 选 择 下 一 步 要 抓 取 的 网 页 URL,并 重 复 上 述 过 程 , 直 到 达 到 系 统 的 某 一 条 件 时 停 止 , 如 图 1(b)所 示 。 另 外 , 所 有 被 爬虫 抓 取 的 网 页 将 会 被 系 统 存 贮 , 进 行 一 定 的 分 析 、 过 滤 , 并 建 立 索 引 , 以 便 之 后 的 查 询和 检 索 ; 对 于 聚 焦 爬 虫 来 说 , 这 一 过 程 所 得 到 的 分 析 结 果 还 可 能 对 以 后 的 抓 取 过 程 给 出反 馈 和 指 导 。 相 对 于 通 用 网 络

34、 爬 虫 , 聚 焦 爬 虫 还 需 要 解 决 三 个 主 要 问 题 : (1) 对 抓 取 目 标 的 描 述 或 定 义 ; (2) 对 网 页 或 数 据 的 分 析 与 过 滤 ; (3) 对 URL 的 搜 索 策 略 。 抓 取 目 标 的 描 述 和 定 义 是 决 定 网 页 分 析 算 法 与 URL 搜 索 策 略 如 何 制 订 的 基 础 。而 网 页 分 析 算 法 和 候 选 URL 排 序 算 法 是 决 定 搜 索 引 擎 所 提 供 的 服 务 形 式 和 爬 虫 网 页 抓取 行 为 的 关 键 所 在 。 这 两 个 部 分 的 算 法 又 是 紧 密

35、 相 关 的 。2.2 抓取目标描述现 有 聚 焦 爬 虫 对 抓 取 目 标 的 描 述 可 分 为 基 于 目 标 网 页 特 征 、 基 于 目 标 数 据 模 式 和 基 于领 域 概 念 3 种 。 基 于 目 标 网 页 特 征 的 爬 虫 所 抓 取 、 存 储 并 索 引 的 对 象 一 般 为 网 站 或 网 页 。 根 据 种 子样 本 获 取 方 式 可 分 为 : ( 1) 预 先 给 定 的 初 始 抓 取 种 子 样 本 ; ( 2) 预 先 给 定 的 网 页 分 类 目 录 和 与 分 类 目 录 对 应 的 种 子 样 本 , 如 Yahoo!分 类结 构 等

36、 ; ( 3) 通 过 用 户 行 为 确 定 的 抓 取 目 标 样 例 , 分 为 : a) 用 户 浏 览 过 程 中 显 示 标 注 的 抓 取 样 本 ; b) 通 过 用 户 日 志 挖 掘 得 到 访 问 模 式 及 相 关 样 本 。 其 中 , 网 页 特 征 可 以 是 网 页 的 内 容 特 征 , 也 可 以 是 网 页 的 链 接 结 构 特 征 , 等 等 。 现 有 的 聚 焦 爬 虫 对 抓 取 目 标 的 描 述 或 定 义 可 以 分 为 基 于 目 标 网 页 特 征 , 基 于 目 标 数据 模 式 和 基 于 领 域 概 念 三 种 。 基 于 目 标

37、 网 页 特 征 的 爬 虫 所 抓 取 、 存 储 并 索 引 的 对 象 一 般 为 网 站 或 网 页 。 具 体 的 方法 根 据 种 子 样 本 的 获 取 方 式 可 以 分 为 : ( 1) 预 先 给 定 的 初 始 抓 取 种 子 样 本 ; ( 2)预 先 给 定 的 网 页 分 类 目 录 和 与 分 类 目 录 对 应 的 种 子 样 本 , 如 Yahoo!分 类 结 构 等 ;( 3) 通 过 用 户 行 为 确 定 的 抓 取 目 标 样 例 。 其 中 , 网 页 特 征 可 以 是 网 页 的 内 容 特 征 , 也可 以 是 网 页 的 链 接 结 构 特

38、征 , 等 等 。 2.3 系统结构2.3.1 单个 Spider 的系统结构图单个 Spider 的系统结构如上图所示.每个爬虫从一组种子 URL 开始,首先根据初始 URL 并按照机器人拒绝协议检测被访问主机是否允许访问该 URL,通过检测后由 HTTP/HTTPS 下载模块下载该网页。URL 抽取器从下载的网页中抽取出新的 URL,然后由 URL 过滤器逐个检测 URL 是否符合过滤器限制。最后,用哈希函数计算各个 URL 的哈希值,如果属于本 Spider 的爬行范围,则将该 URL 加入到本地 URL 数据库中;否则把该 URL 插入到 URL 发送队列中,由 URL 分发器定时转发

39、给对应的 Spider.2.3.2 可扩展 Spider 的系统结构图及其爬行策略如图上图所示,为了能够高效地采集页面数据,我们在 Spider 系统中采用了 Client/Server 结构。 “网络蜘蛛”由一台或多台 Spider 构成,它们通过内部通信,由信息服务器统一管理并协同工作。由于 Spider 的效率受采集平台、网络性能等诸多限制,为了达到比较理想的采集速度,我们采用了用多个Spider 同时并行采集的策略。具体并行的 Spider 个数需要根据实际的采集速度要求和网络环境而定。显而易见,采用服务器/采集器的结构使采集系统具有很好的可扩展性。管理员可根据系统采集规模的变化动态地

40、调整采集器的数量,在保证系统性能的前提下尽量减少系统开销,达到最佳的性能/价格比。而且在规模动态变化的过程中,系统能维持一致的管理和数据输出接口。这里所说的信息服务器主要负责对全局 URL 队列中的 URL 进行分发、对采集到的页面信息和文件信息进行缓存和压缩以及在采集过程中的一些协调和控制。为了实现的简单性,我们采用了轮转法进行分配。并且当某个 Spider 没有待采集的 URL 时,它也会主动向 URL 分发器发送 URL 请求。每个 Spider 的任务就是将信息服务器分配给它的 URL 按照到来的先后顺序插入到自己的 URL 队列中,然后不停的从队首取出 URL 进行采集,直到自己的

41、URL 队列为空。为了提高进一步的采集效率,在每个 Spider 上我们采用了多线程方式。3 可扩展 Spider 使用的关键技术3.1 相关协议的介绍Internet 构建在很多相关的协议基础上,协议(Protocol)是用于两个或多个系统之间协作通信的方式。该系统的实现是基于 Internet 协议之上的,主要有:Socket 套接字协议,HTTP 超文本传输协议,HTTPS 超文本传输安全协议,下面就这些协议作一一介绍。3.1.1 Socket 套接字协议“套接字” (Socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端” 。针对一个特定的连接,每台机器上都有一个“套接

42、字” ,可以想象它们之间有一条虚拟的“线缆” 。套接字不关心数据的格式,它和底层的TCP/IP 协议都只需确保数据到达正确的目的地。套接字的工作很像邮政服务,它们所做的就是将信息分遣到世界各地的计算机系统。Java 有非常简单的套接字编程,其中定义有两个类:Socket 和ServerSocket,在套接字程序设计中特别重要。如果编写的程序是扮演服务器的角色,它就应该使用 ServerSocket;如果程序是连接到服务器的,那么它扮演客户端的角色,就应该使用 Socket 类。无论是通过子类 ServerSocket 完成的服务器还是客户端,Socket 类只用于最初的开始连接,一旦连接建立,

43、就使用输入和输出流来促进客户端和服务器之间的通信。连接成功后,客户端和服务器之间的区别就完全没意义了。任意一端都可以往套接字读写数据。从套接字得到的结果是一个 InputStream 以及 OutputStream(若使用恰当的转换器,则分别是 Reader 和 Writer) ,以便将连接作为一个 IO 流对象对待。一旦客户(程序)申请建立一个套接字连接,ServerSocket 就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。从此时起,我们就得到了真正的“套接字套接字”连接,可以用同样的方式对待连接的两端,因为它们本来就是相同的!此时可以利用 getInpu

44、tStream()以及getOutputStream()从每个套接字产生对应的 InputStream 和 OutputStream 对象,这些数据流必须封装到缓冲区内。3.1.1.1 客户端套接字编程步骤首先,构造客户端套接字。当客户端套接字被第一次实例化时,必须指定两个参数:连接的主机和将要连接的端口号,例如:.Socket s=new Socket(ip 地址,端口号 port);其次,如果在连接指定的主机时出现任何错误,Socket 构造函数将抛出IOException。一旦连接成功,就通过 Socket.getInputStream 和Socket.getOutputStream

45、方法获得输入和输出流。例如:_out=new java.io.PrintWriter(s.getOutputStream();_in=new java.io.BufferedReader(new Java.io.InputStreamReader(s.getInputStream();3.1.1.2 服务器套接字编程步骤首先,构造服务器套接字。ServerSocket 对象有几个可利用的构造函数,最简单的构造函数仅仅接受程序将要侦听的端口号,例如:trys=new ServerSocket(端口号 port);catch(Exception e)System.out.println(“Erro

46、r:”+e);retrun;try 语句块是必须要的,因为当程序尝试注册端口号 port 时,可能会出现不少错误,导致最常见的错误原因是本机已经有服务器在侦听端口 port。其次,一旦程序成功注册了端口 port,它就可以开始侦听连接了。以下代码是用于等待连接的:Socket remote=s.accept();通过 accept 返回的 Socket 对象正好和客户端套接字使用的是同一个类。一旦连接被建立,客户端套接字和服务器套接字之间的不同就消失了。客户端套接字和服务器套接字之间的主要的不同就在于它们的连接方式,客户端套接字连接到其他端,而服务器套接字等待其他端连接它。3.1.2 HTTP

47、/HTTPS 协议HTTP(Hypertext Transfer Protocol)是建立在 TCP/IP 网络协议基础上的用于WWW 数据传输的标准协议。通过 HTTP 协议,搜索引擎与 WWW 服务器建立通信机制,向服务器提出对网页各种特征提取的请求,并从服务器的应答中获得相应数据。HTTP 协议的通讯包是由头字段和实体两部分组成。头字段用于描述各种信息,实体用于装载内容息。重要的头字段有 HTTP/1.1(版本号)、Server (服务器类型) 、Date(获取时间) 、Content-type(媒体类型) 、Last-modified(最后修改时间) 、Content-length(内

48、容长度)等。了解了 HTTP 请求/ 响应通讯包的构造方法,可以很容易获取网页的内容。HTTPS(Hypertext Transfer Protocol Secure)在许多方面都非常类似 HTTP,由于提供底层加密协议的安全套接字层(Secure Socket Layer,简称 SSL),才使HTTPS 与 HTTP 有所区分。一旦数据包被解密,协议的大多数元素都是相同的。3.2 URL 地址结构及分类Internet 上的位置是通过 URL(Uniform Resourse Locator,统一资源定位器)来指定的。这就是唯一标识 Internet 上具体资源的地址。例如,http:/ 就

49、唯一标识了一副存储在Web 服务器上的图像。URL 由 Scheme(模式),HostnameJ(主机名),Port(端口),Path(路径)和Anchor(锚点)组成,其中某些 URL 的端口号和锚点可以省略URL 有绝对和相对之分,绝对 URL 将指定一个准确的、无歧义的 Internet资源位置。绝对 URL 包含主机名和文件名。例如:http:/ URL: 主机名,myfile.html 是文件名。相对 URL 仅指定绝对 URL 的一部分,从来不指定 http:/前缀。通常,相对 URL 只是一个文件名。如果相对地址以斜杠(/)开始,则表示“直接来源于主机”。这意味着它将使用同样的主机名,完全替换其中的主机名。不以斜杠开始的相对地址,将被简单地连接到正在查看页面所在的目录。3.3 多线程与线程同步多线程是一个程序在同一时刻运行超过一个任

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报