今天給大家分享一款我用Python開發的實用工具——【爬微博搜索軟件】,專為需要批量獲取微博內容的用户打造,解決了常規採集的諸多痛點。
一、工具開發背景與核心優勢
1.1 開發初衷
微博作為國內頂流社交媒體平台,以實時性強、熱點傳播快、KOL影響力大著稱。無論是熱點事件追蹤、行業動態分析,還是用户輿論調研,微博上的海量文字、圖片內容都極具參考價值。但實際操作中,大家常會遇到採集頁數受限、多關鍵詞切換繁瑣、數據易丟失等問題。基於這些需求,我開發了這款採集工具,旨在提供更高效、穩定的內容獲取方案。
1.2 界面展示
工具界面簡潔直觀,無需複雜操作,上手即用:
軟件界面
1.3 結果預覽
採集數據全面且結構化,包含11個核心字段,方便後續分析使用:
採集結果.csv核心字段包括:關鍵詞、頁碼、微博ID、微博鏈接、用户暱稱、用户主頁鏈接、發佈時間、轉發數、評論數、點贊數、微博內容。
1.4 演示視頻
工具運行全程可視化,具體操作流程可查看演示視頻,直觀瞭解採集全流程。原文有。
1.5 重要説明
- 支持Windows系統直接雙擊啓動,無需安裝Python運行環境,操作門檻低。經多次測試,工具運行穩定,可持續採集不中斷。
- 需提前在cookie.txt文件中填寫個人微博cookie(內附詳細獲取教程),便於重複使用。
- 支持多關鍵詞並行採集,關鍵詞之間用|分隔即可。
- 可自定義採集時間範圍,格式統一為YYYY-MM-DD,精準鎖定目標內容。
- 採集過程中按頁保存CSV文件,每1-2秒自動存儲一次,避免異常中斷導致數據丟失。
- 生成專屬log日誌文件,詳細記錄運行狀態,方便問題回溯與排查。
- 工具持續迭代更新,後續將不斷優化功能體驗。
二、核心開發技術棧
2.1 整體框架
工具整體基於Python語言開發,各模塊分工明確:
tkinter:搭建簡潔易用的GUI操作界面
requests:處理網絡爬蟲請求,確保數據獲取穩定
BeautifulSoup:解析響應數據,精準提取核心信息
pandas:負責CSV文件保存與數據清洗,保證數據規範性
logging:實現運行日誌記錄,便於問題定位
注:出於版權保護,暫不公開源碼,僅提供工具使用權限。
2.2 部分源碼
1、向頁面發送請求和解析數據部分:
# 發送請求
r = requests.get(url, headers=h1, params=params)
# 解析數據
soup = BS(r.text, 'html.parser')
2、保存數據部分:
# 保存數據
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,
}
)
if os.path.exists(self.result_file): # 如果文件存在,不再設置表頭
header = False
else: # 否則,設置csv文件表頭
header = True
# 保存csv文件
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')
self.tk_show('結果保存成功:{}'.format(self.result_file))
3、日誌部分:
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
三、詳細操作指南
3.1 準備工作:
獲取並填寫cookie打開PC端微博,進入搜索頁面並完成登錄。按教程打開瀏覽器開發者工具,找到對應Cookie信息並複製。
CK獲取方法將複製的Cookie值粘貼到工具文件夾中的cookie.txt文件內,保存即可。
3.2 賬號登錄流程
打開工具後,進入登錄界面,輸入賬號密碼完成驗證,即可啓動採集功能。
3.3 開始採集
操作在工具界面填寫核心採集條件:
搜索關鍵詞:多個關鍵詞用|分隔(示例:小米SU7|蔚來ES6|理想L6)
日期範圍:填寫格式為YYYY-MM-DD,設定採集的時間區間
採集最大頁:建議單關鍵詞單時間段不超過50頁,
保障採集穩定性點擊”開始執行”按鈕,工具將自動啓動採集任務。
採集過程中請勿直接打開CSV文件,可複製副本查看實時數據,避免採集中斷。
四、使用相關説明
本工具僅用於合法的信息收集與研究用途,禁止用於任何違法違規活動。 如因違規使用工具導致的任何法律責任,均由使用者自行承擔,與工具開發者無關。
五、版本更新日誌
- 2025.3.17(v1.3版):新增爬取顆粒度選擇功能,支持按小時或按天採集,自由控制數據密度;File菜單新增意見反饋入口,方便及時收集問題並優化。
- 2025.1.9(v1.2版):優化循環時間顆粒度,由原來的按天統計改為按小時統計,採集更精準。
六、作者聲明
本工具為原創開發,如需瞭解更多技術細節或進行專業交流,可通過正規渠道聯繫開發者(首發公眾號:老男孩的平凡之路)。工具使用需嚴格遵守相關法律法規和平台規定。