【GitHub精选项目】微博数据采集:weibo-crawler使用指南

举报
frica01 发表于 2024/03/31 15:02:12 2024/03/31
【摘要】 通过这个工具,用户可以自动化地抓取微博用户的帖子、评论、点赞数和转发数等信息,支持将数据保存为CSV和JSON等格式,大大简化了数据收集的过程。

image.png

【GitHub精选项目】微博数据采集:weibo-crawler使用指南

前言

本文为大家带来的是 dataabcweibo-crawler 开源项目,这是一个高效的下载微博数据的开源项目。它可以轻松的帮助用户获取微博数据从而进行分析。

在众多社交媒体平台中,微博以其海量的用户和实时的信息流成为了研究的热点。而weibo-crawler帮可以助研究人员、数据分析师甚至是好奇的个人用户,高效地从微博抓取数据。

本文介绍的不够详尽!仅展示该项目的一小部分!读者朋友们可以前往项目主页进行全面的学习!

项目地址:https://github.com/dataabc/weibo-crawler

项目概览

weibo-crawler 是一个开源的微博爬虫项目,能够自动化地抓取微博用户的帖子、评论、点赞数和转发数等信息。该项目使用 Python 开发,简化了数据收集的过程,支持将数据保存为CSV和JSON等格式,方便后续的数据分析工作。

image.png

它采集的数据也是很全面的!

CSV文件

image.png

下载图片

image.png

下载视频

image.png


克隆项目

git clone

最简单的,在命令行工具输入以下命令即可,如下图所示:

git clone https://github.com/dataabc/weibo-crawler.git

image.png

Download ZIP

如果没有安装Git,那么使用 Download ZIP 也是个不错的选择。

image.png

运行程序

本项目是由Python编程语言所编写,默认读者朋友们已经安装好了。

配置环境

step 1 安装依赖

去到项目目录下,安装所需要的库。在命令行执行以下命令即可。

pip install -r requirement.txt

step 2 定义参数

安装好项目所需要的依赖之后,可以打开config.json进行程序运行之间必要的配置

  • 以下是完整的参数
{
    "user_id_list": ["1669879400"],
    "only_crawl_original": 1,
    "remove_html_tag": 1,
    "since_date": "2018-01-01",
    "write_mode": ["csv"],
    "original_pic_download": 1,
    "retweet_pic_download": 0,
    "original_video_download": 1,
    "retweet_video_download": 0,
    "download_comment":1,
    "comment_max_download_count":1000,
    "download_repost": 1,
    "repost_max_download_count": 1000,
    "user_id_as_folder_name": 0,
    "cookie": "your cookie",
    "mysql_config": {
        "host": "localhost",
        "port": 3306,
        "user": "root",
        "password": "123456",
        "charset": "utf8mb4"
    },
    "mongodb_URI": "mongodb://[username:password@]host[:port][/[defaultauthdb][?options]]"
}

具体的配置参数需要去看官方文档 的介绍,我们这里试运行只需要关注 user_id_list 这个参数即可。

设置user_id_list

具体如何获取 user_id如何获取user_id

user_id_list是要爬取的微博用户的id列表,可以直接在配置中指定,也可以将其设置为一个txt文件的路径。

  1. 直接指定:将用户id以列表形式列出,如:(这这里我们选择了第一种方式)
"user_id_list": ["1223178222", "1669879400", "1729370543"]
  1. 使用txt文件:创建一个txt文件,每行包含一个用户id和可选的注释(如用户昵称),id和注释之间以空格分隔,示例如下:
1223178222 胡歌
1669879400 迪丽热巴
1729370543 郭碧婷

然后将文件路径指定给 user_id_list,例如:

"user_id_list": "user_id_list.txt"

本次试运行的config.json

  • since_date:10 是取最近10天的内容
{
    "user_id_list":  ["1223178222", "1669879400", "1729370543"],
    "only_crawl_original": 0,
    "since_date": 10,
    "start_page": 1,
    "write_mode": [
        "csv"
    ],
    "original_pic_download": 1,
    "retweet_pic_download": 0,
    "original_video_download": 0,
    "retweet_video_download": 0,
    "download_comment": 1,
    "comment_max_download_count": 100,
    "download_repost": 1,
    "repost_max_download_count": 100,
    "user_id_as_folder_name": 0,
    "remove_html_tag": 1,
    "cookie": "your cookie",
    "mysql_config": {
        "host": "localhost",
        "port": 3306,
        "user": "root",
        "password": "123456",
        "charset": "utf8mb4"
    },
    "mongodb_URI": "mongodb://[username:password@]host[:port][/[defaultauthdb][?options]]"
}

运行方式

命令行

在做完上述的配置操作之后,就可以运行程序了!

运行 weibo.py

python weibo.py

运行情况如下图所示,

program_run.gif

docker

此项目也支持docker运行,

在项目根路径创建一个名为docker-compose.yml 的文件,填下以下内容:

  • path/to 修改成你的项目的根路径
version: '3'
services:
  weibo-crawler:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - path/to/config.json:/app/config.json
      - path/to/weibo:/app/weibo
    environment:
      - schedule_interval=1 # 可选:循环间隔(分钟)

然后在命令行输入以下命令启动

docker-compose up -d

结果展示

可以参考前面的项目概览或项目文档,这里不做具体展示!

运行结果如下图所示:

  • 程序在项目根目录下生成了对应的文件!
    image.png

迪丽热巴

image.png


注意事项

  1. 尊重版权:在使用weibo-crawler时应尊重微博用户的版权和隐私,仅用于非商业性研究和学习目的。
  2. 遵守法律法规:在使用该工具时,应遵守当地法律法规,不得用于任何违法活动。
  3. 配置Cookie:获取并配置自己的微博Cookie到config.json文件中,因为有效的Cookie对于获取部分受限内容是必需的。

总结

通过这个工具,用户可以自动化地抓取微博用户的帖子、评论、点赞数和转发数等信息,支持将数据保存为CSV和JSON等格式,大大简化了数据收集的过程。

本文详细介绍了weibo-crawler的项目概览、克隆项目、运行程序及结果展示等步骤,旨在帮助用户快速上手使用这个工具。在实际使用过程中,用户应当尊重版权、遵守法律法规,并妥善配置个人的微博Cookie,以确保爬虫的正常运行及数据获取的合规性。

美中不足的是,作者并没有在 Releases 发布编译好的拿来即用的版本。但是我相信能去逛Github网站的小伙伴,动手能力都不会太差!所以这也是小问题~

后话

本次分享到此结束,
see you~~🎈🎈

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。