基于Python模拟浏览器登录的新浪微博数据爬取研究
优采云 发布时间: 2021-06-23 02:29基于Python模拟浏览器登录的新浪微博数据爬取研究
文档介绍:EvaluationWarning:ThedocumentwascreatedwithSpire.. 新浪微博数据爬取研究综述摘要:新浪微博的快速发展推动了基于微博数据的研究的发展,如何获取微博数据是相关研究的第一个问题文章分析了爬取新浪微博数据的方法,提出了一种基于Python的语言,直接设置登录用户的cookie信息,模拟浏览器访问的新浪微博数据爬取程序,解决了不使用新浪微博开放平台API抓取微博数据的主要问题是实现的爬虫程序编程简单,性能稳定,获取微博数据有效。 关键词:新浪微博;数据抓取;微博爬虫; Python中文库分类号:TP391; TP311 *敏*感*词*识别码:A文章 编号:2095-1302(2016)12-00-040 随着互联网的不断普及,人们越来越多地参与互联网社交活动。微博,作为典型的互联网社交新浪微博是中国最早、规模最大的微博社区,新浪微博数据中心发布的《2015年微博用户发展报告》指出:“截至2015年9月,微博月活跃数用户达到2.220亿,较2014年同期增长33%;日活跃用户达到1亿,较去年同期增长30%。随着微博平台功能的不断完善,微博用户群逐渐稳定并保持持续增长。
"⑴微臣用户群的增长,使得基于微博数据的社交网络分析[2]、用户行为分析[3,4]、网络数据挖掘[5]越来越重要。如何抓取感兴趣的数据来自微博已经成为研究人员解决的首要问题,本文分析了微博数据的爬取方法,提出了一种基于Python模拟浏览器登录的微博数据爬取方案,并探讨了微博反爬取机制的相关处理。 1 微博数据爬取方法 爬取微博数据通常有两种方式,一种是调用新浪微博开放平台提供的微转开放接口,另一种是开发爬虫程序,模拟微博登录,分析得到的HTML 1.1调用微博开放接口 新浪微博开放平台[6]提供了20多种接口,涵盖了微博的内容,理论上这种方法是最直接方便的方式o 操作各种操作、评论、用户和关系。但是,新版微博开放界面存在一定的局限性,对于小型研究团队或个人来说不是很方便。以下几点:(1)微博开界面使用0auth2.0认证授权,如果想获取其他用户的个人信息和微博内容,必须对该用户进行授权;(2)微博开端口有访问频率限制,对于测试用户的每个应用,每个应用每小时最多只能访问150次;(3)很多研究所需要的数据只能通过高级接口访问,这需要特殊的应用和支付。正是因为这些限制的存在,设计和开发一个自己获取微博数据的网络爬虫程序,就成为了一个不可缺少的替代或替代方案。
1.2 微博爬虫程序的开发 微博爬虫程序的设计开发需要分析新浪微博的特点,明确爬取数据的H和目的,选择合理的开发语言,保证高效稳定的访问微博。博客数据。 1.2.1 与一般的网站相比,新浪微博有以下特点:(1)新浪微博是针对登录用户的,用户在访问微博数据前,必须先登录。;(2)微博博文 显示采用延迟加载机制,一次只显示一个微博页面的部分博文,当用户滚动到博文底部时,会继续加载微博上的其他傅文(3)芭微博陈冇有比较完善的反爬虫机制,一旦微博服务器识别到爬虫程序,就会拒绝访问。基于新浪微博的上述特点,在设计微博爬虫时,以上特点需要具体处理 1.2.2 开发语言选择 从快速获取微博数据的角度来看,Python是开发微博爬虫的首选语言,它具有以下特点:(1)Python是一种带有文本的解释性高级语言 简单易学,开发速度快等C。; (2)Python 有更丰富的库和第三方库,在开发爬虫方面比其他语言更方便。考虑到新浪微博会在一段时间后对其数据格式进行微调。因此,使用Python开发微博爬虫程序维护性更高 2 微博爬虫实现2.1微博爬虫框架结构 木头讨论的微博爬虫程序包括爬虫调度器、URL管理器、页面加载器、HTMLw解析器和页面五个功能模块数据导出器如图 1 所示。
图1 微博爬虫的框架结构2.1.1 爬虫调度器 爬虫调度器是爬虫的控制程序。主播负责协调和调度微博爬虫的各个模块。其核心功能包插入如下Item:(1)实现爬取微博数据的过程;(2)控制其他模块的执行;(3)模拟浏览器登录,为页面请求添加Headers信息;( 4)控制微博访问频率),避免反爬虫机制拒绝访问。2.1.2URL管理器微沙爬虫采用广度优先遍历策略提取需要的数据,URL管理器需要维护一个已爬取的URL列表和一个等待被爬取的URL列表,获取到新的URL后,首先查看已爬取的URL列表,如果该URL不在列表中,则将其添加到等待被抓取的URL列表中2.1.3 Page Loader Page Loader 根据爬虫调度器提供的 Headers 信息和 URL manager 提供的 URL 向微博服务器发送请求,获取请求的 HTML 页面,以免爬虫过频繁,微博服务器无法及时响应 o r 被服务器的反爬虫机制拒绝访问。页面加载器使用定时机制来限制加载页面