/Weibo_Spider

☀️ 基于Python3的微博爬虫项目,含有按关键字和时间进行微博信息爬取、微博用户资料爬取、微博评论爬取等功能。

Primary LanguagePythonApache License 2.0Apache-2.0

weibo_spider

独立开发的关于微博信息爬虫的项目。

一、项目总览

1、开发环境:

  • python 3.6
  • mysql 5.6
  • 所需依赖:re datetime requests BeautifulSoup pymysql

2、现阶段已经实现了四个基本功能:

  • 根据搜索的关键字和起始时间条件搜索微博,对微博的信息进行爬取。
  • 获取(1)中通过关键字搜索出的各个微博的用户ID,并进行去重操作,爬取各个用户的基本信息。
  • 获取(1)中通过关键字搜索出的各个微博的微博ID,并进行去重操作,通过微博ID获取此微博下的全部评论信息。
  • 仅通过某个微博用户ID爬取此ID的全部微博内容。

3、接口说明:
① 根据关键字和时间条件进行搜索:https://s.weibo.com/weibo?q={}&typeall=1&suball=1&timescope=custom:{}:{}&Refer=g&page={}

② 根据搜索出的每个微博对应的用户ID爬取用户基本信息:https://weibo.cn/{}

③ 仅根据某个用户ID爬取他的全部微博内容:https://weibo.cn/{}?page={}

二、项目结构介绍

search_spider - 根据关键字和时间进行爬取的模块 -
----hour_fenge.py 时间分隔函数:对要搜索的时间期限进行以每小时为单位的划分,返回包含所有时间单位的列表
----search_start.py 根据关键字和时间条件进行爬取的主要函数:其中包括爬取某页全部微博、微博所有页数的计算、保存数据库等功能

tools - 工具模块 -
----Config.cfg 数据库等配置文件 ----Cookie_Process.py cookie处理函数:其中包括获取文件中存储的cookie、更新文件中存储的cookie等功能
----Date_Process.py 时间处理函数:其中包括对爬取到微博的不同时间格式进行统一
----Emoji_Process.py 表情处理函数:清除掉包含的utf8bm4编码格式的表情
----Mysql_Process.py mysql数据库工具类:其中包括数据库连接、关闭、增删改查的操作等
----Number_Process.py 转发、评论数处理函数:对爬取到的微博的转发、评论数进行统一

user_spider - 爬取根据关键字搜索到的微博对应的微博用户的基本资料模块 -
----cookie.file 存储可用的cookie信息
----user_start.py 爬取用户资料的主要功能函数:包括获取所爬取微博的所有用户ID,并根据每个ID爬取其基本信息

weibo_spider - 根据某个用户ID爬取其所有微博的模块 -
-----cookie.file 存储可用的cookie信息
-----weibo_start.py 爬取用户全部微博的主要功能函数:其中包括爬取某页全部微博、微博所有页数的计算、保存数据库等功能

comment_spider - 爬取根据关键字搜索到的微博对应的微博下的全部评论-
----cookie.file 存储可用的cookie信息
----comment_start.py 爬取微博评论的主要功能函数:包括获取所爬取微博的所有微博ID,并根据每个ID爬取其全部评论信息


三、项目使用介绍

Ps:三个模块的功能相互独立,可直接运行 *_start.py 函数使用

1、根据关键字和时间进行爬取的模块:

  • 此模块不需要登录,也不需要获取cookie,可直接运行search_start.py使用

2、爬取根据关键字搜索到的微博对应的微博用户的基本资料模块:

3、爬取根据关键字搜索到的微博对应的全部评论:

  • 此模块需要获取cookie,cookie存于目录下的cookie.file中,
  • 获取cookie操作同上
  • 直接运行commentr_start即可使用,运行时输入要爬取的评论的微博关键字,会提示是否更新cookie,如不更新,输入n/N即可

4、 根据某个用户ID爬取其所有微博的模块

  • 此模块需要获取cookie,cookie存于目录下的cookie.file中
  • 获取cookie操作同上
  • 直接运行weibo_start.py即可使用