基于Python的新浪微博用户数据获取技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Scrapy架 构 下 ,用 户需 要编 写 爬虫 部 件spiders和 数 据 处理 部 1C-item pipeline。
2。模拟 登陆
模 拟 登 陆是 爬虫 技 术所 要攻 克 的第 一个难 题 。所 谓模 拟 登陆 , 即 让计算 机模 仿 人 ]:操 作 , 以达 到欺 骗 服务 器 的 目的 。我们 分 别尝 试 了以下 四种 策略 ,并 比较 了它们 的优 劣性 。
本文 基 于Python语 占提 出了 一种 无 需借 助 官方 API接 口就 能 获 取 用 户数据 的方法 … 多线 程爬 虫技 术 。该 项技 术 与传 统 的网络 爬虫 相 比,主 要有 以下一 点改 进 :首 先 ,使用 多线 程爬 虫取 代传 统 的单 线 程爬 虫 ,提 高 丫数据 扶 取速 率 ;其 次 ,针对 微博 的反 爬 虫机 制 设 计 了四种 突破 策 略 ;最后 ,成 功 实现 了对 于微 博评 论等 动 态 网页 的 爬 取 。
续 分析 . 实验 结 果表 明 ,该爬 虫系统获取 数据 的实行 性和 效 率 高,稳 定性 和;住确性较 好 . 【关键词 】微博数据;Python;Scrapy ̄t_ ;反爬 虫机制
引 言
新 浪微 博作 为我 闲 主流 社 交媒体 ,拥 有海 量 数据 。 自2009年 推 出以来 ,新 浪微 }{l}的使 用 人数 急速 上升 ,带 来 的是信 息 量的 剧增 。 每 天 ,人们 通 过转 发 、互粉 、点赞 等行 为 发表 自 己的喜 恶看 法 ,将 个 人观 点放 大 到社 会 问 。在 如今 这个 大数 据 时代 ,社 交 网络 分析 依 赖 于 海 量 的数 据 来 探 索 人 类 社 会 关 系 中的 奥 秘 ,而 如 何获 取 这 些 数据 至 关重 要 。 此之 前 ,国 外 的研 究学 者 已经对 Twitter、You Tube等社 交平 台进 行 了,一‘系 拥J的分 析 ,其研 究 方法 相对 成熟 。他们 获 取 数 据 的主 要 方法 足 通 过 网站 官 方 提供 的API接 [= 】。…在 国 内 , 由于新 浪 官方 目前 限制 相 关数 据接 口的使 用 ,所 以研 究者要 想 获取 数 据 ,需 另辟 蹊径 。
(1)手动 获 取 cookie登陆 : 该方法 较 为简 单 ,但 是 需要 人 为 参 与 , 自动 化程 度低 。
(2)post方 法 登陆weibo.cor n:该方 法 难度较 高 ,主要 因为 以 下 三点 。其 一 ,网页版微博 上存在 大斌 的, ’告 片,javascripH'℃码 复 杂 ,从而 降低 了后续 工作 中源码 分析 的效率 。I4 其二 ,官方 分 别使 用 了Base64和 RSA 加 密算法对 用户 账号和 密码进 行了加 密。 ■ 第 一 次跳转到 的URL在使用 正则表达式 匹配后才能得到 目标主页
1.Scrapy多线 程爬 虫框 架
目前 , ̄python实现 多 线程 爬 虫主 要有 两 种方 法 。一 是 自行 设 计彩线程 函 数 , 二足使 用python的scrapy包 来 包装 线程 对 象 。【3]本 爬 虫系 统主 要 使 川Scrapy框 架编 写 ,Scrapy框架 是 一种 引擎和 下 载 器之 问 的框架 ,主 要功 能 是处 理Scrapy引擎与 下载 器 之间 的请 求及 响 应 。其基 本组 件 币iI 作 原理 如 图 1所 示 。
3.动 态 网页 抓 取
新 浪 微 博 与 豆 瓣 、 知 乎 等 其他 社 交 网站 的 区 别在 于 : 微 博 中 很 多 网页 都是动 态 的 ,爬取 有 一 定的难 度 ,所 以需要特 殊 处理 。土 要 有两 种爬 动 态 网站 的策 略可 以选 取 。第 一种 方 法是 使用 自动 化 测 试 工 具selenium进 行抓 取 ,这 主 要 是 因为chrome driver可 以渲 染 用 iavascript生成 的 网站 。具 体 做法 是 先获 取 网页 源码 ,再使 用 XPath 路 径 语言 解析 网 页。Selenium 抓 取 虽然 简洁 方 便 ,但 存 在抓 取速 率
图 1 Scrapy多 线 程 爬 虫 框 架 原 理 图 (3)post方 法 登 陆weibo.CI'E巾 f移 动 端 页面 相 对 简沽 , 网页 源码 较 少 ,所 以相对 登 陆 网页版 更加 简 单 ,但 也存 在两 个难 点 。其 一 , 蹙 陆时 会 出现验 证 码 ,本 文采 用 的解决 方法 足 下载 到本 地 然后 手动 输 入 。其二 ,登陆 http://weibo.cn/后 会有 个重 定向 ,这 时 必 须 设定user.agent,否D]post完成 后 会卡在 跳转 页面 。 (4)利 用 自动 化测 试工 具 Selenium:Selenium 是 一 个 门动 化 测 试 工具 ,相 当于一 个没 有 界面 浏 览器 ,可 以完 全模 拟浏 览器 行 为 , 所 以利 用它 进行 模拟 登 陆非 常方便 。"
基金 项 目 :江 苏省 高等 学校 大学 生创新 创 业训 练计 划项 目 (2()1710286018Y)。
ELECTRONICS W ORLD ·菇 j
基 于Pyຫໍສະໝຸດ Baiduh on的新浪微 博 用户数 据 获取技 术
东南大学信 息科 学与工程 学 院 罗 咪
【摘要 】为 了获取 用于社 交网络研 究的新浪微博用户数据,本文改进 了传统网络爬虫,设计 了一个基于py出cm的新浪微博爬 虫系统 、该 系统 使 用scrapy多线程 爬 虫框 架 ,实现 了模 拟登 陆 、动 态 网 页抓 取和 克服 微 博反 爬 虫机 制等 功能 ,抓 取 后数 据被 存储 在MysQL数 据 库 中 ,便 于后
2。模拟 登陆
模 拟 登 陆是 爬虫 技 术所 要攻 克 的第 一个难 题 。所 谓模 拟 登陆 , 即 让计算 机模 仿 人 ]:操 作 , 以达 到欺 骗 服务 器 的 目的 。我们 分 别尝 试 了以下 四种 策略 ,并 比较 了它们 的优 劣性 。
本文 基 于Python语 占提 出了 一种 无 需借 助 官方 API接 口就 能 获 取 用 户数据 的方法 … 多线 程爬 虫技 术 。该 项技 术 与传 统 的网络 爬虫 相 比,主 要有 以下一 点改 进 :首 先 ,使用 多线 程爬 虫取 代传 统 的单 线 程爬 虫 ,提 高 丫数据 扶 取速 率 ;其 次 ,针对 微博 的反 爬 虫机 制 设 计 了四种 突破 策 略 ;最后 ,成 功 实现 了对 于微 博评 论等 动 态 网页 的 爬 取 。
续 分析 . 实验 结 果表 明 ,该爬 虫系统获取 数据 的实行 性和 效 率 高,稳 定性 和;住确性较 好 . 【关键词 】微博数据;Python;Scrapy ̄t_ ;反爬 虫机制
引 言
新 浪微 博作 为我 闲 主流 社 交媒体 ,拥 有海 量 数据 。 自2009年 推 出以来 ,新 浪微 }{l}的使 用 人数 急速 上升 ,带 来 的是信 息 量的 剧增 。 每 天 ,人们 通 过转 发 、互粉 、点赞 等行 为 发表 自 己的喜 恶看 法 ,将 个 人观 点放 大 到社 会 问 。在 如今 这个 大数 据 时代 ,社 交 网络 分析 依 赖 于 海 量 的数 据 来 探 索 人 类 社 会 关 系 中的 奥 秘 ,而 如 何获 取 这 些 数据 至 关重 要 。 此之 前 ,国 外 的研 究学 者 已经对 Twitter、You Tube等社 交平 台进 行 了,一‘系 拥J的分 析 ,其研 究 方法 相对 成熟 。他们 获 取 数 据 的主 要 方法 足 通 过 网站 官 方 提供 的API接 [= 】。…在 国 内 , 由于新 浪 官方 目前 限制 相 关数 据接 口的使 用 ,所 以研 究者要 想 获取 数 据 ,需 另辟 蹊径 。
(1)手动 获 取 cookie登陆 : 该方法 较 为简 单 ,但 是 需要 人 为 参 与 , 自动 化程 度低 。
(2)post方 法 登陆weibo.cor n:该方 法 难度较 高 ,主要 因为 以 下 三点 。其 一 ,网页版微博 上存在 大斌 的, ’告 片,javascripH'℃码 复 杂 ,从而 降低 了后续 工作 中源码 分析 的效率 。I4 其二 ,官方 分 别使 用 了Base64和 RSA 加 密算法对 用户 账号和 密码进 行了加 密。 ■ 第 一 次跳转到 的URL在使用 正则表达式 匹配后才能得到 目标主页
1.Scrapy多线 程爬 虫框 架
目前 , ̄python实现 多 线程 爬 虫主 要有 两 种方 法 。一 是 自行 设 计彩线程 函 数 , 二足使 用python的scrapy包 来 包装 线程 对 象 。【3]本 爬 虫系 统主 要 使 川Scrapy框 架编 写 ,Scrapy框架 是 一种 引擎和 下 载 器之 问 的框架 ,主 要功 能 是处 理Scrapy引擎与 下载 器 之间 的请 求及 响 应 。其基 本组 件 币iI 作 原理 如 图 1所 示 。
3.动 态 网页 抓 取
新 浪 微 博 与 豆 瓣 、 知 乎 等 其他 社 交 网站 的 区 别在 于 : 微 博 中 很 多 网页 都是动 态 的 ,爬取 有 一 定的难 度 ,所 以需要特 殊 处理 。土 要 有两 种爬 动 态 网站 的策 略可 以选 取 。第 一种 方 法是 使用 自动 化 测 试 工 具selenium进 行抓 取 ,这 主 要 是 因为chrome driver可 以渲 染 用 iavascript生成 的 网站 。具 体 做法 是 先获 取 网页 源码 ,再使 用 XPath 路 径 语言 解析 网 页。Selenium 抓 取 虽然 简洁 方 便 ,但 存 在抓 取速 率
图 1 Scrapy多 线 程 爬 虫 框 架 原 理 图 (3)post方 法 登 陆weibo.CI'E巾 f移 动 端 页面 相 对 简沽 , 网页 源码 较 少 ,所 以相对 登 陆 网页版 更加 简 单 ,但 也存 在两 个难 点 。其 一 , 蹙 陆时 会 出现验 证 码 ,本 文采 用 的解决 方法 足 下载 到本 地 然后 手动 输 入 。其二 ,登陆 http://weibo.cn/后 会有 个重 定向 ,这 时 必 须 设定user.agent,否D]post完成 后 会卡在 跳转 页面 。 (4)利 用 自动 化测 试工 具 Selenium:Selenium 是 一 个 门动 化 测 试 工具 ,相 当于一 个没 有 界面 浏 览器 ,可 以完 全模 拟浏 览器 行 为 , 所 以利 用它 进行 模拟 登 陆非 常方便 。"
基金 项 目 :江 苏省 高等 学校 大学 生创新 创 业训 练计 划项 目 (2()1710286018Y)。
ELECTRONICS W ORLD ·菇 j
基 于Pyຫໍສະໝຸດ Baiduh on的新浪微 博 用户数 据 获取技 术
东南大学信 息科 学与工程 学 院 罗 咪
【摘要 】为 了获取 用于社 交网络研 究的新浪微博用户数据,本文改进 了传统网络爬虫,设计 了一个基于py出cm的新浪微博爬 虫系统 、该 系统 使 用scrapy多线程 爬 虫框 架 ,实现 了模 拟登 陆 、动 态 网 页抓 取和 克服 微 博反 爬 虫机 制等 功能 ,抓 取 后数 据被 存储 在MysQL数 据 库 中 ,便 于后