分享一个新浪微博的爬虫,基于 Scrapy + MongoDB 实现,号称一小时可爬千万条数据。

作者:LiuXingMing

来源:http://blog.csdn.net/bone_ace/article/details/50903178

项目地址:https://github.com/LiuXingMing/SinaSpider

爬虫功能:

  • 此项目和QQ空间爬虫类似,主要爬取新浪微博用户的个人信息、微博信息、粉丝和关注(详细见此)。

  • 代码获取新浪微博Cookie进行登录,可通过多账号登录来防止新浪的反扒(用来登录的账号可从淘宝购买,一块钱七个)。

  • 项目爬的是新浪微博wap站,结构简单,速度应该会比较快,而且反扒没那么强,缺点是信息量会稍微缺少一些(可见爬虫福利:如何爬wap站)。

  • 爬虫抓取微博的速度可以达到 1300万/天 以上,具体要视网络情况,我使用的是校园网(广工大学城校区),普通的家庭网络可能才一半的速度,甚至都不到。

环境、架构:

开发语言:Python2.7 
开发环境:64位Windows8系统,4G内存,i7-3612QM处理器。 
数据库:MongoDB 3.2.0 
(Python编辑器:Pycharm 5.0.4;MongoDB管理工具:MongoBooster 1.1.1)

  • 主要使用 scrapy 爬虫框架。

  • 下载中间件会从Cookie池和User-Agent池中随机抽取一个加入到spider中。

  • start_requests 中根据用户ID启动四个Request,同时对个人信息、微博、关注和粉丝进行爬取。

  • 将新爬下来的关注和粉丝ID加入到待爬队列(先去重)。

使用说明:

启动前配置:

  • MongoDB安装好 能启动即可,不需要配置。

  • Python需要安装好scrapy(64位的Python尽量使用64位的依赖模块)

  • 另外用到的python模块还有:pymongo、json、base64、requests。

  • 将你用来登录的微博账号和密码加入到 cookies.py 文件中,里面已经有两个账号作为格式参考了。

  • 另外一些scrapy的设置(如间隔时间、日志级别、Request线程数等)可自行在setting里面调。

运行截图:

数据库说明:

SinaSpider主要爬取新浪微博的个人信息、微博数据、关注和粉丝。 数据库设置 Information、Tweets、Follows、Fans四张表,此处仅介绍前面两张表的字段。

Information 表: 
id:采用 "用户ID" 作为唯一标识。 
Birthday:出生日期。 
City:所在城市。 
Gender:性别。 
Marriage:婚姻状况。 
NickName:微博昵称。 
Num
Fans:粉丝数量。 
NumFollows:关注数量。 
Num
Tweets:已发微博数量。 
Province:所在省份。 
Signature:个性签名。 
URL:微博的个人首页。

Tweets 表: 
id:采用 "用户ID-微博ID" 的形式作为一条微博的唯一标识。 
Co
oridinates:发微博时的定位坐标(经纬度),调用地图API可直接查看具体方位,可识别到在哪一栋楼。 
Comment:微博被评论的数量。 
Content:微博的内容。 
ID:用户ID。 
Like:微博被点赞的数量。 
PubTime:微博发表时间。 
Tools:发微博的工具(手机类型或者平台) 
Transfer:微博被转发的数量。

分享朋友圈 也是另一种赞赏

The more we share, The more we have

 

欢迎加入数据君高效数据分析社区


加我私人微信进入大数据干货群:tongyuannow 

目前100000+人已关注加入我们

       

       

一小时爬千万数据的新浪微博爬虫相关推荐

  1. python爬取数据步骤_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  2. yspider爬取数据导入mysql_爬虫实战四、PyCharm+Scrapy爬取数据并存入MySQL

    一.创建爬虫项目 注意:不能直接使用PyCharm创建Scrapy项目,所以需要在爬虫实战三.PyCharm搭建Scrapy开发调试环境的基础(PyCharm配置完Scrapy)之上,选中mySpid ...

  3. python3爬取数据存入mysql_Python3爬虫爬取数据并存入mysql

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. python滚动条翻页爬取数据_Python网络爬虫之Selenium 处理滚动条【第十四节】

    Selenium 处理滚动条selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. ...

  5. python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  6. python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  7. 如何用六步教会你使用python爬虫爬取数据

    前言: 用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂.以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了. python爬出六部曲 第一步:安装req ...

  8. python微博评论爬虫_详解用python写网络爬虫-爬取新浪微博评论 基于Python的新浪微博爬虫研究...

    怎样爬取新浪微博的评论信息 针对八爪鱼在微博的应用上,除了用户信息之外还包括话题内容方面的采集,目前绝大多数企业均在微博设有官方微博,八爪鱼可以协助企业快速及时的抓取与企业产品相关联的话题信息,规则市 ...

  9. NO.16——Pathon爬取杨超越新浪微博数据做词云分析

    看到网上充斥着很多词云分析的资料,今天心血来潮,也尝试下词云分析.最近热火的<创造101>,杨超越小姐姐一直在风口浪尖,因此这里借用小姐姐的微博数据做分析. 一.准备工具 作词云分析主要用 ...

最新文章

  1. 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
  2. dede调用sql语句的方法
  3. HTML-CSS- JavaScript——网页三剑客
  4. hdu 2454 Degree Sequence of Graph G(可简单图化判定)
  5. 时间序列研(part10)--误差修正模型
  6. js 递归编程要注意的:return
  7. java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java
  8. java如何写安卓接口文档_android、java制作sdk以及自动生成文档
  9. 測试新浪微博@小冰 为代码机器人的一些方法
  10. PostgreSQL 视图、子查询
  11. Golang map 三板斧第一式:快速上手
  12. 用友修改服务器名称,用友修改服务器地址
  13. 英语口译笔记法实战指导 吴钟明 pdf_三口过关,名师指导备考干货帖(内附口译笔记讲解)...
  14. php网页拍照并上传,HTML中网页拍照并上传照片的实现方法
  15. linux 正则匹配文件名,shell 正则表达式与文件名匹配
  16. 无言以队Alpha阶段项目复审
  17. 自动化测试 之连连看外挂项目实战
  18. 基于OpenCV实现简单人脸面具、眼镜、胡须、鼻子特效(详细步骤 + 源码)
  19. 小米生态链企业商米科技完成数亿元C+轮融资,蚂蚁金服投资...
  20. 设计分享|基于单片机的矩阵电子琴(汇编)

热门文章

  1. 宝塔开启面板ssl后无法访问-解决方案
  2. 甘肃省定西市谷歌卫星地图下载
  3. 苹果越狱后必备软件,总有你需要的!11月23日追加14个,支持【iOS4】
  4. ubuntu18.04或20.04 安装显卡驱动
  5. Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
  6. excel表格行列显示十字定位_突出显示活动单元格所在行列的设置方法
  7. 计算机usb接口充电效率差,比充电器还省电 实测主板关机充电神技
  8. kubernetes-v1.15.0安装【使用kubeadm部署Kubernetes-跳过国内网络问题】
  9. 消息总线扩展之面向消息的数据集成
  10. 万亿级数据,如何高效进行数据治理