
本软件工具仅限于学术交流使用,严格遵循相关法律法规,符合平台内容合法合规性,禁止用于任何商业用途!
我是@马哥python说,一枚10年+程序猿,现全职独立开发。
曾经和很多同学聊过,他们希望有一个工具,可以把微博指定用户的已发布帖子的数据采集下来,然后做数据分析使用。为了满足这类需求,我特意用python开发了这款工具:weibo_user_post_tool
软件运行界面:

▲ 软件运行截图
采集结果展示:

▲ 采集结果.csv
以上。
几点重要说明,请详读了解:
软件全部模块采用python语言开发,主要分工如下:
tkinter:GUI软件界面
requests:爬虫请求
json:解析响应数据
time:间隔等待,防止反爬
pandas:保存csv结果
logging:日志记录
出于版权考虑,暂不公开完整源码,仅向用户提供软件使用权。
软件界面:
# 创建主窗口
root = tk.Tk()
root.title('爬微博博主软件v1.0 | 马哥python说')
# 设置窗口大小
root.minsize(width=850, height=660)
爬虫请求:
# 发送请求
r = requests.get(url, headers=h1, params=params)
# 接收响应数据
json_data = r.json()
保存数据:
# 保存数据到DF
df = pd.DataFrame(
{
'博主昵称': name_list,
'博主id': user_id,
'页码': page,
'微博id': id_list,
'微博bid': bid_list,
'微博链接': wb_url_list,
'发布时间': create_time_list,
'发布于': region_name_list,
'转发数': reposts_count_list,
'评论数': comments_count_list,
'点赞数': like_count_list,
'话题标签': topic_list,
'微博内容': text_list,
}
)
# 保存csv文件
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')
日志记录:
def get_logger(self):
self.logger = logging.getLogger(__name__)
# 日志格式
formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
# 日志级别
self.logger.setLevel(logging.DEBUG)
# 控制台日志
sh = logging.StreamHandler()
log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
# info日志文件名
info_file_name = time.strftime("%Y-%m-%d") + '.log'
# 将其保存到特定目录
case_dir = r'./logs/'
info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
when='MIDNIGHT',
interval=1,
backupCount=7,
encoding='utf-8')
self.logger.addHandler(sh)
sh.setFormatter(log_formatter)
self.logger.addHandler(info_handler)
info_handler.setFormatter(log_formatter)
return self.logger
日志文件截图:
