利用新浪API实现数据的抓取\微博数据爬取\微博爬虫

本文介绍了利用Python和新浪API抓取微博数据的过程,包括注册开发者账号、安装依赖、OAuth认证的原理及问题,以及解决数据重复的方法。由于新浪API限制,此方法现已被废弃,仅作学习参考。
摘要由CSDN通过智能技术生成

PS:(本人长期出售超大量微博数据、旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com。由于微博接口更新后限制增大,这个代码已经不能用来爬数据了。如果只是为了收集数据可以咨询我的邮箱,如果是为了学习爬虫,建议改学phantomjs从网页中爬取微博的)

利用新浪API实现数据的抓取(由于api接口限制增大,本文已基本废弃)


2018.5.16 提示
微博的api接口现在已经不好用了,普通权限的token已经爬不到什么数据了,想要用这个代码爬大量数据的已经不太可能,只能作为熟悉微博api接口使用方法的一个小demo了。

2018.4.16 说明

注意:今天有人言语恶劣地评论我的博客是垃圾,说我的代码有问题,这篇博客历史久远,是我初玩爬虫写的博客。我非常感谢能对我的代码提出意见的人,但是出言不逊,态度恶劣的人我是忍受不了的,有话好好说,是一个现代社会高学历高知识分子的最低觉悟。

代码我已经改过了,如果还有问题非常欢迎大家来温和地指出!!!!

同时,由于新浪微博本身api机制的不断更改,到目前为止,这篇博客的内容已经有了局限,对于个人开发者来说,你申请到的token的权限只能爬你自己的微博,所以对于想要靠api来爬数据的人,恐怕可能并不能达成自己的目的了。想要用api来爬取微博内容只能选择获取更高的开发者权限了。


1. 首先来看看最后我们得到的是什么结果,是不是你想要了解的东西,再决定是否往下读。 

注册新浪微博

我主要抓取了大概4天的数据,图上可以看的出来大概有360万条数据,由于是在自己的电脑上爬取做数据的,有时候晚上断网了就间断了,所以大概一天可以爬取有100万左右的最新微博数据(因为我调用的是最新的微博API public_timeline)

API文档当中定义了很多返回的类型(以json数据格式返回,我选取了一些我认为重要的信息抓取下来如图所示: 大概有id号所在位置粉丝数,发的微博内容,发微博的时间等等。 当然这些数据都可以根据自己的需要进行定制。)

大概就是这些内容,你如果认为这对你有点帮助,就请继续读下去… 第一次写博客有些啰嗦

2. 前期准备

我们需要的东西:

  • 数据库: mongodb(可以使用客户端MongoBooster)
  • 开发环境: Python2.7(我用的IDE是Pycharm)
  • 一个新浪开发者账号: 用自己的新浪微博账号注册就行(后面会讲)
  • 需要的库: requests和pymongo(这些都可以在Pycharm中下载)
2.1 mongodb的安装

MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。

小插曲:什么是NoSql?

  NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。

网上有很多安装mongodb教程我就不写了

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值