本工具仅用于学术交流,技术分享,须遵守法律法规与平台规则,不得用于商业活动。
在信息爆炸的时代,社交媒体成为了大众表达观点、分享生活的重要阵地,而微博凭借其强大的实时性和广泛的影响力,一直占据着社交媒体的头部位置。每当热点事件发生,微博热搜总是率先登场,成为众人瞩目的焦点。
作为一名 Python 技术爱好者,我突发奇想,能不能开发一款工具,快速采集微博上特定关键词的相关信息呢?说干就干,经过一番努力,一款名为【爬微博搜索软件v1.0】的软件诞生了(现已升级到v1.3版本)
采集到的结果数据,长这个样子:
这款软件具有多项实用功能。它支持多关键词搜索,比如在汽车话题讨论中,你可以同时输入 “比亚迪汉”“特斯拉 Model 3”“小鹏 P7” 等关键词,软件会分别针对每个关键词进行数据采集。而且,还能按照设定的时间范围采集帖子,比如你想了解某款新车发布前后一周内网友的讨论情况,就可以精准设置时间区间。此外,为了保证数据的安全性,软件每爬取一页数据就会保存一次,生成的 CSV 文件以时间戳命名,方便用户随时查找和管理。
软件界面设计简洁明了,新手也能快速上手。打开软件,首先映入眼帘的是几个关键输入框。在 “搜索关键词” 栏,你可以输入多个关键词,用 “|” 隔开。“日期范围” 则用于设置采集帖子的时间跨度,按照 “YYYY-MM-DD” 的格式填写。“采集最大页” 可以控制每个关键词在每个时间段内采集的页数,考虑到微博数据量庞大,建议不要超过 50 页。界面下方的 “运行日志” 区域会实时显示软件的运行状态,比如 “开始爬取 比亚迪汉 从 2024-10-01-00 到 2024-10-02-00,第 1 页,本页数量: 10”,让你对采集进度了如指掌。
软件的开发全程使用 Python 语言,多个强大的库协同工作,共同实现了各项功能。
tkinter:GUI软件界面
requests:爬虫请求
BeautifulSoup:解析响应数据
pandas:保存csv结果、数据清洗
logging:日志记录
逐一介绍:
Tkinter:负责搭建软件的图形用户界面(GUI),让软件操作更加直观、便捷,用户无需复杂的命令行操作,点点鼠标就能完成数据采集任务。
Requests:用于向微博服务器发送网络请求,获取包含目标数据的网页内容。它就像一个勤劳的快递员,准确地把我们需要的网页信息带回来。
BeautifulSoup:对获取到的网页数据进行解析,提取出我们真正需要的信息,比如微博 ID、用户昵称、发布时间等。它能在杂乱无章的 HTML 代码中精准定位,找到关键数据。
Pandas:主要用于数据清洗和保存为 CSV 文件。它可以对采集到的数据进行整理、筛选,去除重复或无效的数据,然后将处理好的数据保存到 CSV 文件中,方便后续的数据分析。
Logging:记录软件运行过程中的各种信息,生成日志文件。一旦软件运行出现问题,通过查看日志就能快速定位错误,方便进行调试和优化。
下面是部分关键代码的实现逻辑:
发送请求并解析数据:
# 发送请求
response = requests.get(target_url, headers=headers, params=parameters)
# 解析数据
soup = BeautifulSoup(response.text, 'html.parser')
解析微博链接:
# 微博链接
weibo_link = 'https:' + item.find('div', class_='from').find('a')['href']
link_list.append(weibo_link)
保存结果数据到 CSV 文件:
# 整理数据
data = {
'关键词': keyword,
'页码': page_num,
'微博id': id_list,
'微博链接': link_list,
'用户昵称': user_name_list,
'用户主页链接': user_homepage_list,
'发布时间': publish_time_list,
'转发数': repost_num_list,
'评论数': comment_num_list,
'点赞数': like_num_list,
'微博内容': content_list
}
df = pd.DataFrame(data)
# 保存csv文件
df.to_csv(result_file_path, mode='a+', index=False, header=header, encoding='utf_8_sig')
print(f'结果保存成功:{result_file_path}')
在使用软件前,需要先获取并填写自己的微博 Cookie。Cookie 就像是我们登录微博的 “通行证”,有了它,软件才能正常访问微博数据。
获取 Cookie 的方法并不复杂,如上图所示。以 PC 端为例,打开微博网页,登录自己的账号,然后按 F12 键打开浏览器开发者工具,切换到 “网络” 选项卡。在搜索框中输入关键词搜索微博,此时会出现很多请求记录。找到一个以 “weibo” 开头的请求,点击它,在右侧的 “请求标头” 中就能看到 Cookie 的内容。将这些内容复制下来,粘贴到软件所在文件夹的 “cookie.txt” 文件中。
完成 Cookie 设置后,就可以启动软件了。
如图所示,在软件界面中,按照自己的需求填写关键词、日期范围和采集最大页等信息,确认无误后点击 “开始采集” 按钮。软件会立即开始工作,在运行日志中实时显示采集进度。采集完成后,在软件所在文件夹中就能找到生成的 CSV 文件,打开文件,可以看到详细的微博数据,包括关键词、页码、微博 ID、链接、用户信息、发布时间、互动数据和微博内容等,方便你进行深入的数据分析。
软件使用过程的演示,给不懂代码的小白用户看的!
软件首发众公号“老男孩的平凡之路”,同时,这款软件仅供个人学习和研究使用,禁止用于任何违法活动。如果违反规定,由此产生的一切法律后果都将由使用者自行承担。
目前软件还在不断更新迭代中,后续会加入更多实用功能,敬请期待!希望这款软件能帮助大家更好地挖掘微博数据中的价值,无论是市场调研、热点分析还是个人兴趣研究,都能发挥它的作用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。