Coder Social home page Coder Social logo

weibospider's Introduction

WeiboSpider

This is a sina weibo spider built by scrapy

更多关于微博爬虫的介绍请移步:微博爬虫总结:构建单机千万级别的微博爬虫系统

项目说明

该项目分为3个分支,以满足不同的需要

分支 特点 单机每日抓取量
simple 单账号 十万级
master 账号池 百万级
senior 账号池+分布式 千万级+

该项目爬取的数据字段说明,请移步:数据字段说明与示例

已经在senior分支的基础上新增了search分支,用于微博关键词搜索

Change log

  • 2019/05/07 添加IP池的示例代码
  • 2019/05/07 全面修复历史问题,增加用户的标签,评论的点赞,微博的发布平台/表情/图片/视频等新的字段
  • 2018/10/13 添加微博搜索分支
  • 2018/9/30 添加布隆过滤器

如何使用

下面是master分支,也就是构建单机百万级的爬虫

如果你只想用你自己的一个账号简单爬取微博,每日十万级即可,请移步simple分支

如果你需要大规模爬取微博,需要单机千万级别,请移步senior分支

克隆本项目 && 安装依赖

本项目Python版本为Python3.6

git clone [email protected]:nghuyong/WeiboSpider.git
cd WeiboSpider
pip install -r requirements.txt

除此之外,还需要安装mongodb和phantomjs,这个自行Google把

购买账号

小号购买地址(访问需要翻墙): http://www.xiaohao.shop/

需要购买绑号无验证码类型的微博小号(重点!)

购买越多,sina/settings.py 中的延迟就可以越低,并发也就可以越大

将购买的账号复制到sina/account_build/account.txt中,格式与account_sample.txt保持一致

构建账号池

python sina/account_build/login.py

运行截图:

这是你的mongodb中将多一个账号表,如下所示:

加入代理IP

请重写fetch_proxy方法,该方法需要返回一个代理ip

运行爬虫

scrapy crawl weibo_spider 

运行截图:

导入pycharm后,也可以直接执行sina/spider/weibo_spider.py

该爬虫是示例爬虫,将爬取 人民日报 和 新华视点 的 用户信息,全部微博,每条微博的评论,还有用户关系。

可以根据你的实际需求改写示例爬虫。

速度说明

一个页面可以抓取10则微博数据

下表是我的配置情况和速度测试结果

爬虫配置 配置值
账号池大小 200+
CONCURRENT_REQUESTS 16
DOWNLOAD_DELAY 0.1s
每分钟抓取网页量 250+
每分钟抓取数据量 2500+
总体一天抓取数据量 360万+

实际速度和你自己电脑的网速/CPU/内存有很大关系。

weibospider's People

Contributors

nghuyong avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.