美文网首页
scrapy爬取新浪微博分享(2)

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

作者: 要读博士 | 来源:发表于2017-08-04 14:16 被阅读0次

    内容概要:

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

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

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

    Fiddler工具

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

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

    分析新浪微博数据结构

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

    其中点击 /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框架封装的。

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

    把数据库配置好:

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

    参考:

    1、《Python网络数据采集》

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

    相关文章

      网友评论

          本文标题:scrapy爬取新浪微博分享(2)

          本文链接:https://www.haomeiwen.com/subject/avlplxtx.html