scrapy爬取新浪微博分享(2)

内容概要:

最近自己学习了一些爬虫,学习之余,写了一个新浪微博的爬虫。大规模爬数据没有试过,但是爬取几十万应该没有什么问题。爬虫爬取的站点是新浪移动端站点。github地址为:https://github.com/yz21606948/sinaSpider

第一次写文章,难免有疏忽,大家共同交流,共同进步。也请喜欢的朋友,在github上打个star

内容分为三章,第一张介绍scrapy,第二张分析爬取网站,第三章分析代码。

Fiddler工具

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一。它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试Web应用、请求修改数据、甚至可以修改服务器返回的数据,功能非常强大,是WEB调试的利器。

既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有相应,也都会先经过Fiddler然后发送到客户端。

分析新浪微博数据结构

首先我们登录微博可以看到Fiddler抓取的包:


scrapy爬取新浪微博分享(2)_第1张图片

其中点击 /api/container/getIndex?type=uid&value=6311254871&containerid=1005056311254871 HTTP/1.1我们可以看到微博获取个人信息的API接口,里面存放着json数据。

简单分析下JSON,我们可以知道里面存放着昵称、个性签名、微博数、关注数、粉丝数等个人信息。我们可以记录下我们需要的信息。

同理,我们通过不断分析Fiddler抓取的包可以得到微博内容的API,粉丝列表的API,关注者列表的API。里面依旧是JSON格式,我们从中记录下我们需要的信息。

编写Model层

刚刚我们记录下了各个API中我们需要抓取的信息,然后就可以在程序中编写我们的数据层了。scrapy是用Django编写的,他们的数据层基本是一样的,是由Django的ARM框架封装的。

类似于下图,我们把带抓取的数据格式写好:


scrapy爬取新浪微博分享(2)_第2张图片

把数据库配置好:


scrapy爬取新浪微博分享(2)_第3张图片

完成以上步骤就可以准备编写我们的爬虫代码了。

参考:

1、《Python网络数据采集》

2、http://blog.csdn.net/bone_ace/article/details/50903178

你可能感兴趣的:(scrapy爬取新浪微博分享(2))