V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhijieju
V2EX  ›  GitHub

GitHub:新浪微博爬虫,用 Python 采集新浪微博数据

  •  
  •   zhijieju · 2020-06-21 21:15:52 +08:00 · 1612 次点击
    这是一个创建于 1397 天前的主题,其中的信息可能已经有所发展或是发生改变。

    hello,小伙伴们,大家好,今天给大家分享的开源项目是:weiboSpider,看名字也可以猜到这个项目是做什么的了!没错,这个开源项目就是采集新浪微博一个或多个用户(如:胡歌、迪丽热巴、郭碧婷)数据,并将结果信息写入文件或数据库,写入信息几乎包括用户微博的所有数据,包括用户信息和微博信息两大类。这个开源项目需设置 cookie 来获取微博访问权限,后面会讲解如何获取 cookie 。如果不想设置 cookie,可以使用免 cookie 版,二者功能类似。

    具体的写入文件类型如下:

    1. 写入 txt 文件(默认)
    2. 写入 csv 文件(默认)
    3. 写入 json 文件(可选)
    4. 写入 MySQL 数据库(可选)
    5. 写入 MongoDB 数据库(可选)
    6. 下载用户原创微博中的原始图片(可选)
    7. 下载用户转发微博中的原始图片(免 cookie 版特有)
    8. 下载用户原创微博中的视频(可选)
    9. 下载用户转发微博中的视频(免 cookie 版特有)
    10. 下载用户原创微博 Live Photo 中的视频(免 cookie 版特有)
    11. 下载用户转发微博 Live Photo 中的视频(免 cookie 版特有)

    项目列表


    自定义字段


    本部分为爬取到的字段信息说明,为了与免 cookie 版区分,下面将两者爬取到的信息都列出来。如果是免 cookie 版所特有的信息,会有免 cookie 标注,没有标注的为二者共有的信息。

    用户信息

    • 用户 id:微博用户 id,如"1669879400",其实这个字段本来就是已知字段
    • 昵称:用户昵称,如"Dear-迪丽热巴"
    • 性别:微博用户性别
    • 生日:用户出生日期
    • 所在地:用户所在地
    • 学习经历:用户上学时学校的名字和时间
    • 工作经历:用户所属公司名字和时间
    • 阳光信用(免 cookie 版):用户的阳光信用
    • 微博注册时间(免 cookie 版):用户微博注册日期
    • 微博数:用户的全部微博数(转发微博+原创微博)
    • 关注数:用户关注的微博数量
    • 粉丝数:用户的粉丝数
    • 简介:用户简介
    • 主页地址(免 cookie 版):微博移动版主页 url
    • 头像 url (免 cookie 版):用户头像 url
    • 高清头像 url (免 cookie 版):用户高清头像 url
    • 微博等级(免 cookie 版):用户微博等级
    • 会员等级(免 cookie 版):微博会员用户等级,普通用户该等级为 0
    • 是否认证(免 cookie 版):用户是否认证,为布尔类型
    • 认证类型(免 cookie 版):用户认证类型,如个人认证、企业认证、政府认证等
    • 认证信息:为认证用户特有,用户信息栏显示的认证信息

    微博信息

    • 微博 id:微博唯一标志
    • 微博内容:微博正文
    • 头条文章 url:微博中头条文章的 url,若微博中不存在头条文章,则值为''
    • 原始图片 url:原创微博图片和转发微博转发理由中图片的 url,若某条微博存在多张图片,每个 url 以英文逗号分隔,若没有图片则值为"无"
    • 视频 url: 微博中的视频 url,若微博中没有视频,则值为"无"
    • 微博发布位置:位置微博中的发布位置
    • 微博发布时间:微博发布时的时间,精确到分
    • 点赞数:微博被赞的数量
    • 转发数:微博被转发的数量
    • 评论数:微博被评论的数量
    • 微博发布工具:微博的发布工具,如 iPhone 客户端、HUAWEI Mate 20 Pro 等
    • 结果文件:保存在当前目录 weibo 文件夹下以用户昵称为名的文件夹里,名字为"user_id.csv"和"user_id.txt"的形式
    • 微博图片:原创微博中的图片和转发微博转发理由中的图片,保存在以用户昵称为名的文件夹下的 img 文件夹里
    • 微博视频:原创微博中的视频,保存在以用户昵称为名的文件夹下的 video 文件夹里
    • 微博 bid (免 cookie 版):为免 cookie 版所特有,与本程序中的微博 id 是同一个值
    • 话题(免 cookie 版):微博话题,即两个#中的内容,若存在多个话题,每个 url 以英文逗号分隔,若没有则值为''
    • @用户(免 cookie 版):微博 @的用户,若存在多个 @用户,每个 url 以英文逗号分隔,若没有则值为''
    • 原始微博(免 cookie 版):为转发微博所特有,是转发微博中那条被转发的微博,存储为字典形式,包含了上述微博信息中的所有内容,如微博 id 、微博内容等等

    运行环境


    • 开发语言:python2/python3
    • 系统:Windows/Linux/macOS

    部署项目


    源码安装

    $ git clone https://github.com/dataabc/weiboSpider.git
    $ cd weiboSpider
    $ pip install -r requirements.txt
    

    或者

    $ python3 -m pip install weibo-spider
    

    运行程序


    源码安装的用户可以在 weiboSpider 目录运行如下命令,pip 安装的用户可以在任意有写权限的目录运行如下命令

    $ python3 -m weibo_spider
    

    第一次执行,会自动在当前目录创建 config.json 配置文件,配置好后执行同样的命令就可以获取微博了。如果你已经有 config.json 文件了,也可以通过 config_path 参数配置 config.json 路径,运行程序,命令行如下:

    $ python3 -m weibo_spider --config_path="config.json"
    

    个性化定制程序(可选)


    本部分为可选部分,如果不需要个性化定制程序或添加新功能,可以忽略此部分。

    本程序主体代码位于 weibo_spider.py 文件,程序主体是一个 Spider 类,上述所有功能都是通过在 main 函数调用 Spider 类实现的,默认的调用代码如下:

    config = get_config()
    wb = Spider(config)
    wb.start()  # 爬取微博信息
    

    用户可以按照自己的需求调用或修改 Spider 类。通过执行本程序,我们可以得到很多信息。

    定期自动爬取微博(可选)


    要想让程序每个一段时间自动爬取,且爬取的内容为新增加的内容(不包括已经获取的微博),请查看定期自动爬取微博

    如何获取 cookie


    要了解获取 cookie 方法,请查看cookie 文档

    如何获取 user_id


    要了解获取 user_id 方法,请查看user_id 文档,该文档介绍了如何获取一个及多个微博用户 user_id 的方法。

    开源地址: https://github.com/dataabc/weiboSpider

    感兴趣的老铁不防去应用一下,一来可以参考一下作者的编码风格,二来对刚刚入门或者是入门不久的朋友提供一个采集数据的思路。

    今天的推荐不知道大家喜不喜欢?如果大家喜欢话,请在文章底部留言或点赞,以表示对我的支持,你们的留言,点赞,转发关注是我持续更新的动力,peace !

    关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2357 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:02 · PVG 08:02 · LAX 17:02 · JFK 20:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.