一小时爬千万数据的新浪微博爬虫
分享一个新浪微博的爬虫,基于 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:微博昵称。
NumFans:粉丝数量。
NumFollows:关注数量。
NumTweets:已发微博数量。
Province:所在省份。
Signature:个性签名。
URL:微博的个人首页。Tweets 表:
id:采用 "用户ID-微博ID" 的形式作为一条微博的唯一标识。
Cooridinates:发微博时的定位坐标(经纬度),调用地图API可直接查看具体方位,可识别到在哪一栋楼。
Comment:微博被评论的数量。
Content:微博的内容。
ID:用户ID。
Like:微博被点赞的数量。
PubTime:微博发表时间。
Tools:发微博的工具(手机类型或者平台)
Transfer:微博被转发的数量。
分享朋友圈 也是另一种赞赏
The more we share, The more we have
欢迎加入数据君高效数据分析社区
加我私人微信进入大数据干货群:tongyuannow
目前100000+人已关注加入我们
一小时爬千万数据的新浪微博爬虫相关推荐
- python爬取数据步骤_Python爬虫爬取数据的步骤
爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...
- yspider爬取数据导入mysql_爬虫实战四、PyCharm+Scrapy爬取数据并存入MySQL
一.创建爬虫项目 注意:不能直接使用PyCharm创建Scrapy项目,所以需要在爬虫实战三.PyCharm搭建Scrapy开发调试环境的基础(PyCharm配置完Scrapy)之上,选中mySpid ...
- python3爬取数据存入mysql_Python3爬虫爬取数据并存入mysql
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- python滚动条翻页爬取数据_Python网络爬虫之Selenium 处理滚动条【第十四节】
Selenium 处理滚动条selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. ...
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- 如何用六步教会你使用python爬虫爬取数据
前言: 用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂.以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了. python爬出六部曲 第一步:安装req ...
- python微博评论爬虫_详解用python写网络爬虫-爬取新浪微博评论 基于Python的新浪微博爬虫研究...
怎样爬取新浪微博的评论信息 针对八爪鱼在微博的应用上,除了用户信息之外还包括话题内容方面的采集,目前绝大多数企业均在微博设有官方微博,八爪鱼可以协助企业快速及时的抓取与企业产品相关联的话题信息,规则市 ...
- NO.16——Pathon爬取杨超越新浪微博数据做词云分析
看到网上充斥着很多词云分析的资料,今天心血来潮,也尝试下词云分析.最近热火的<创造101>,杨超越小姐姐一直在风口浪尖,因此这里借用小姐姐的微博数据做分析. 一.准备工具 作词云分析主要用 ...
最新文章
- 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
- dede调用sql语句的方法
- HTML-CSS- JavaScript——网页三剑客
- hdu 2454 Degree Sequence of Graph G(可简单图化判定)
- 时间序列研(part10)--误差修正模型
- js 递归编程要注意的:return
- java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java
- java如何写安卓接口文档_android、java制作sdk以及自动生成文档
- 測试新浪微博@小冰 为代码机器人的一些方法
- PostgreSQL 视图、子查询
- Golang map 三板斧第一式:快速上手
- 用友修改服务器名称,用友修改服务器地址
- 英语口译笔记法实战指导 吴钟明 pdf_三口过关,名师指导备考干货帖(内附口译笔记讲解)...
- php网页拍照并上传,HTML中网页拍照并上传照片的实现方法
- linux 正则匹配文件名,shell 正则表达式与文件名匹配
- 无言以队Alpha阶段项目复审
- 自动化测试 之连连看外挂项目实战
- 基于OpenCV实现简单人脸面具、眼镜、胡须、鼻子特效(详细步骤 + 源码)
- 小米生态链企业商米科技完成数亿元C+轮融资,蚂蚁金服投资...
- 设计分享|基于单片机的矩阵电子琴(汇编)
热门文章
- 宝塔开启面板ssl后无法访问-解决方案
- 甘肃省定西市谷歌卫星地图下载
- 苹果越狱后必备软件,总有你需要的!11月23日追加14个,支持【iOS4】
- ubuntu18.04或20.04 安装显卡驱动
- Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
- excel表格行列显示十字定位_突出显示活动单元格所在行列的设置方法
- 计算机usb接口充电效率差,比充电器还省电 实测主板关机充电神技
- kubernetes-v1.15.0安装【使用kubeadm部署Kubernetes-跳过国内网络问题】
- 消息总线扩展之面向消息的数据集成
- 万亿级数据,如何高效进行数据治理