【GUI軟體開發】小紅書評論採集:自動採集1w多條,含二級評論!

无双0516發表於2024-03-23

一、爬取目標

用python開發的爬蟲採集軟體,可自動抓取小紅書評論區,並且含二級評論。

方便不懂程式設計程式碼的小白使用,無需安裝python、無需改程式碼,雙擊開啟exe即用!

1.1 效果截圖

軟體介面截圖:

結果截圖1:

結果截圖2:

結果截圖3:

1.2 演示影片

軟體執行演示:【軟體演示】小紅書評論採集工具,可爬取上萬條,含二級評論!

1.3 軟體說明

幾點重要說明:

  1. Windows使用者可直接雙擊開啟使用,無需Python執行環境,非常方便
  2. 需要填入cookie和爬取目標筆記連結
  3. 支援同時爬多個筆記的評論
  4. 可爬取10個關鍵欄位,含:筆記連結,頁碼,評論者暱稱,評論者id,評論者主頁連結,評論時間,評論IP屬地,評論點贊數,評論級別,評論內容。
  5. 評論中包含二級評論及二級展開評論。

二、程式碼講解

2.1 爬蟲採集模組

透過把已有程式碼部分封裝成class類,供tkinter介面呼叫。

詳細爬蟲實現邏輯,請見:

【爬蟲實戰】用Python採集任意小紅書筆記下的評論,爬了10000多條,含二級評論!

2.2 軟體介面模組

軟體介面採用tkinter開發。
主視窗部分:

# 建立日誌目錄
work_path = os.getcwd()
if not os.path.exists(work_path + "/logs"):
	os.makedirs(work_path + "/logs")
# 建立主視窗
root = tk.Tk()
root.title('小紅書評論採集軟體 | 馬哥python說')
# 設定視窗大小
root.minsize(width=850, height=650)

填寫cookie控制元件:

# 【填入Cookie】
tk.Label(root, justify='left', font=('微軟', 14), text='個人Cookie:').place(x=30, y=75)
entry_ck = tk.Text(root, bg='#ffffff', width=110, height=2, )
entry_ck.place(x=30, y=100, anchor='nw')  # 擺放位置

填寫筆記連結控制元件:

# 【筆記連結】
tk.Label(root, justify='left', font=('微軟', 14), text='筆記連結:').place(x=30, y=145)
note_ids = tk.StringVar()
note_ids.set('')
entry_nt = tk.Text(root, bg='#ffffff', width=110, height=14, )
entry_nt.place(x=30, y=170, anchor='nw')  # 擺放位置

底部軟體版權說明:

# 版權資訊
copyright = tk.Label(root, text='@馬哥python說 All rights reserved.', font=('仿宋', 10), fg='grey')
copyright.place(x=290, y=625)

以上。

2.3 日誌模組

好的日誌功能,方便軟體執行出問題後快速定位原因,修復bug。
核心程式碼:

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')

日誌檔案截圖:

三、獲取原始碼及軟體

Get完整原始碼:【GUI軟體開發】小紅書評論採集:自動採集1w多條,含二級評論!

相關文章