Giter VIP home page Giter VIP logo

idouwords's Introduction

iDouWord


目录

项目介绍

预期目标

运行环境

运行示例

项目进展

后期计划


项目介绍

项目背景

当下微博已经成为各个年龄段网友冲浪的重要平台之一,许多影视明星、大V网红、官方代表也纷纷入驻微博这一平台.在此背景下,微博已经成为众多粉丝获取爱豆近况、爱豆自拍、和爱豆互动的有效平台之一,于是获取爱豆的微博照片、视频,能满足粉丝的追星需求.当然分析一些明星、知名博主微博点赞数、转发数、评论数并可视化,在一定程度上也能度量博主的受关注度和热度(看看就好,别当真(#^.^#)).

对于个人用户来说,也能使用本项目分析自己的受关注程度,查看自己一定时期内所发微博内容,不仅仅是回忆青(s)春(b)岁月,也是下饭的小甜点

**对于喜欢表情包或者喜欢收藏其他类型图片的个人用户来说,也可以相关方面比较活跃(微博数量较多)的博主UID,下载响应资源到本地,\\\^_^ **

项目目的

**为了开源大作业 **

展示开源所学知识


为了找到爱豆喜欢讲的话

为了私藏爱豆微博所发的写真照

为了及时关注爱豆热度,制定打榜计划

...


预期目标

  1. 实现根据给定目标用户的微博UID,得到目标用户微博个人资料,保存到本地

  2. 依据目标用户微博UID抓取一定时期内目标用户所发(原创和转发)微博(包含图片、视频),保存到本地

  3. 依据所抓取目标用户微博内容、目标用户头像制作目标用户微博关键词词云

  4. 依据目标用户微博个人资料,制作目标用户个人电子名片

  5. 可视化目标用户日、月、年度微博点赞数、转发数

  6. 依据目标用户原创微博所@用户,可视化用户好友关系图

  7. 设置评论数阈值,爬取目标用户热门微博下热评

  8. 统计目标用户热门微博下热评次数较多用户,挖掘目标用户狂热粉丝

运行环境

  • Python 3.6

  • requirements.txt文件内Python包

  • msyh.ttf字体 (主要用于生成目标用户电子名片以及微博关键词词云,项目使用者可以在更改源码以改用其他支持中文的TTF字体)

  • jupyter notebook 平台运行项目扩展功能


运行示例

1.将项目克隆到本地

如图所示

2.配置settings.json文件

settings.json文件内容及含义如下:

{
  "user_id_list": "user_id_list.txt",
  "filter": 1,
  "since_date": "2019-12-01",
  "write_mode": [ "csv" ],
  "original_pic_download": 0,
  "retweet_pic_download": 0,
  "original_video_download": 0,
  "retweet_video_download": 0
}
  • ^user_is_list^ :对应储存目标用户微博UID和昵称(用户自定义)的文件路径

    如目标用户为人民日报,通过查找微博用户UID得到人民日报的微博UID为:2803301701

    可以在程序同一路径下定义^user_id_list.txt^文件储存目标用户微博UID和昵称

    ^user_id_list.txt^文件格式要求如下:

    • 一个目标用户微博UID 后跟空格,之后跟用户自定义昵称

    • 一个目标用户信息在一行

    • 可以自定义多个目标用户

      user_id_list.txt文件名称可以更改,更改后相应的settings.json文件内user_id_list项所对值也要更改

  • ^filter^ :取值为0代表仅仅下载目标用户的原创微博,取值为1代表下载目标用户的原创微博和转发微博

  • ^since_date^:代表爬取微博截止日期,格式应该以年-月-日的形式.(ps:在爬取目标用户微博的时候是从目标用户最近的微博开始爬取的,对于发博较多、发博较频繁的博主,应合理设置爬取微博截止日期,以防爬取时间过长,或者爬取过程中出现网络波动等意外情况终止了程序的进行,致使最后无法生成目标用户的微博关键词,当然如果你的网络状况极其稳定,对目标用户的微博极其感兴趣,请忽视此条ps)

  • ^write_mode^:储存模式,当前只支持csv模式,所爬取目标用户微博会以csv文件格式储存在本地

  • ^original_pic_download^:是否下载原创微博中包含的图片,只有0和1两个取值,默认为0(不下载),1代表下载

  • ^retweet_pic_download^:是否下载转发微博中包含的图片,只有0和1两个取值,默认为0(不下载),1代表下载

  • ^original_video_download^:是否下载原创微博中包含的视频,只有0和1两个取值,默认为0(不下载),1代表下载

  • ^retweet_video_download^:是否下载转发微博中包含的视频,只有0和1两个取值,默认为0(不下载),1代表下载

3.下载requirements.txt文件内python 包

命令行进入到项目所在路径下,输入pip install requirements.txt

即可,对于不能下载的包,请到PyPI.org内下载

4.下载ttf字体

项目默认使用fonts内的^msyh.ttf^字体,要使用其他的字体只需将字体下载到fonts内.并将程序内所有的msyh.ttf换成想要自定义字体即可

5.命令行运行

配置好上述设置后,在命令行输入python iDouWord即可运行

6.运行结果展示

相关配置如下:

程序运行时间:2019年12月22日16:16:36

目标用户UID:2803301701

**爬取之前进行的观察:**目标用户为人民日报,微博内查看其发博数量和频率,设置爬取微博截止日期为2019-12-01

借助开源项目pyecharts

  • 博主话题词云图

  • 博主好友词云图

  • 博主@圈

  • 博主话题圈

    结果在对人民日报爬取微博可视化内.


项目进展

绿色项代表已经实现相应功能

  1. 实现根据给定目标用户的微博UID,得到目标用户微博个人资料,保存到本地
  2. 依据目标用户微博UID抓取一定时期内目标用户所发(原创和转发)微博(包含图片、视频),保存到本地
  3. 依据所抓取目标用户微博内容、目标用户头像制作目标用户微博关键词词云
  4. 依据目标用户微博个人资料,制作目标用户个人电子名片
  5. 可视化目标用户日、月、年度微博点赞数、转发数
  6. 依据目标用户原创微博所@用户,可视化用户好友关系图
  7. 设置评论数阈值,爬取目标用户热门微博下热评
  8. 统计目标用户热门微博下热评次数较多用户,挖掘目标用户狂热粉丝

后期计划

  1. 完成项目目标中没有完成的功能

  2. 在目标用户的微博关键词词云已经初步完成的功能基础上去除文本中意义不大的文本(如微博正文夹杂的话题),添加文文本分析(利用结巴分词),筛选出更加具有代表性的微博正文内容关键词

  3. 模拟微博根据用户昵称得到一些用户列表,并能依次获得用户微博UID

  4. 在目标用户的"@好友圈词云"功能的基础上,添加智能分类功能:

    • 训练集包括微博用户昵称和账号所属类型标签(如歌手,演员,导演,官微,情感博主等)
    • 在目标用户所@的好友进行可视化的时候依据训练集训练的模型进行分类
  5. 依据点赞数、转发数或者评论数抓取目标用户热度较高微博的评论,分析目标用户发什么内容热度较高

  6. 后期计划 3和4 的基础上,分析目标用户的微博关系网:

    • 根据目标用户关注列表以及经常@或者转发的用户分析和目标用户比较亲密的微博好友
    • 预测目标用户的亲密好友之后递归分析目标用户亲密好友的亲密好友
    • 可视化目标用户和目标用户的亲密好友关系
    • 依据目标用户和目标用户的亲密好友去加强后期计划 4的智能分类功能,预测目标用户可能感兴趣的圈子
  7. 基于文本分析目标用户的可能性格:根据用户微博所发内容试图分析用户的情感倾向(如对某些话题感兴趣,对某些用户感兴趣或厌恶),预测目标用户的性格,已经查阅参考资料如下:

  8. 检测目标用户是否存在传播色情淫秽内容

idouwords's People

Contributors

syaxx0819 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.