我自己独立开发的爬微博聚合软件,发布v2.0版:
新增用户信息采集,即:批量输入用户主页,采集用户信息。
采集字段共29个,含:
用户主页链接 uid 昵称 性别 IP属地 所在地 认证类型 认证信息 一句话描述 简介 粉丝数 关注数 微博数 总转发数 总评论数 总点赞数 转评赞总数 阳光信用 芝麻信用 会员等级 是否实名 个性域名 微号 用户标签 头部用户 明星标识 头像URL 生日 注册时间这个软件是全程用python语言开发。
主要技术分工:
| 序号 | 模块 | 用途 |
|---|---|---|
| 1 | tkinter | 构建gui图形用户界面 |
| 2 | requests | 负责发送网络爬虫请求 |
| 3 | json | 解析服务器返回的响应数据 |
| 4 | pandas | 处理并保存为csv数据结果 |
| 5 | logging | 记录运行过程中的日志 |
部分代码实现:
发送请求并解析数据:
# 发送请求r=requests.get(url,headers=h1,params=params)# 解析数据json_data=r.json()解析响应数据,以“评论内容”字段为例:
fordatainjson_data['data']:# 评论内容text=data['text_raw']text_list.append(text)保存结果数据到csv文件:
# 保存数据df=pd.DataFrame({'微博链接':weibo_url,'微博id':weibo_id,'页码':page,'评论者昵称':screen_name_list,'评论者粉丝数':followers_count_list,'评论者关注数':friends_count_list,'评论者主页链接':user_home_url_list,'评论者性别':gender_list,'评论者签名':desc_list,'评论时间':create_time_list,'点赞数':like_counts_list,'评论内容IP属地':source_list,'评论级别':comment_level_list,'评论内容':text_list,})# 保存csv文件df.to_csv(self.result_file,mode='a+',index=False,header=header,encoding='utf_8_sig')self.tk_show('结果保存成功:{}'.format(self.result_file))底部版权声明:
# 版权信息copyright=tk.Label(root,text='@马哥python说 All rights reserved.',font=('仿宋',10),fg='grey')copyright.place(x=290,y=625)日志记录模块:
defget_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')以上技术实现部分,仅做交流分享,不擅长代码的同学或用户,忽略即可。
软件中也友好的附有cookie一键配置小工具:
方便文科生小白用户也能快速启用。
详细的软件演示视频:
【工具演示】微博聚合采集软件
本软件对应的仓库地址:
https://github.com/mashukui/weibo_one_spider
以上就是今天的分享,希望对有帮助的小伙伴提升效率,更多精力专注于数据研究本身。