本软件工具仅限学术交流使用,严格遵循相关法律法规,符合平台合法性,禁止用于任何商业用途!
微博是中国非常受欢迎的社交媒体平台,主要以文字和图片为核心内容,特别在实时性和KOL(意见领袖)关注度方面表现突出。许多网友在微博上积极分享自己的观点和看法,形成了一个极为活跃的社区。此外,我也注意到,每当热点事件发生时,微博的热搜通常是各大媒体平台中最先报道的,而其他平台则往往会有一定延迟。
因此,我用python开发了个爬虫采集软件,名为【爬微博搜索软件】。
软件使用过程演示:
软件全部模块采用python语言开发,主要分工如下:
tkinter:GUI软件界面
requests:爬虫请求
BeautifulSoup:解析响应数据
pandas:保存csv结果、数据清洗
logging:日志记录
软件界面核心源码实现:
# 创建主窗口
root = tk.Tk()
root.title('微博搜索采集软件v1.3')
# 设置窗口大小
root.minsize(width=900, height=650)
日志记录核心源码实现:
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'
# 将其保存到特定目录,ap方法就是寻找项目根目录,该方法博主前期已经写好。
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
爬虫部分核心源码实现:
发送请求模块:
# 发送请求
r = requests.get(url, headers=h1, params=params)
# 解析数据
soup = BS(r.text, 'html.parser')
保存数据模块:
# 保存数据
df = pd.DataFrame(
{
'关键词': kw,
'页码': page,
'微博id': id_list,
'微博链接': wb_url_list,
'用户昵称': name_list,
'用户主页链接': user_link_list,
'发布时间': create_time_list,
'转发数': repost_count_list,
'评论数': comment_count_list,
'点赞数': like_count_list,
'微博内容': text_list,
}
)
# 数据保存到csv文件
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')
出于版权考虑,暂不公开完整源码,仅向用户提供软件使用。
_____
首发众公号”老男孩的平凡之路“,欢迎技术交流、深度探讨!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。