一、爬取目標
用python開發的爬蟲採集軟體,可自動抓取小紅書評論區,並且含二級評論。
方便不懂程式設計程式碼的小白使用,無需安裝python、無需改程式碼,雙擊開啟exe即用!
1.1 效果截圖
軟體介面截圖:
結果截圖1:
結果截圖2:
結果截圖3:
1.2 演示影片
軟體執行演示:【軟體演示】小紅書評論採集工具,可爬取上萬條,含二級評論!
1.3 軟體說明
幾點重要說明:
- Windows使用者可直接雙擊開啟使用,無需Python執行環境,非常方便
- 需要填入cookie和爬取目標筆記連結
- 支援同時爬多個筆記的評論
- 可爬取10個關鍵欄位,含:筆記連結,頁碼,評論者暱稱,評論者id,評論者主頁連結,評論時間,評論IP屬地,評論點贊數,評論級別,評論內容。
- 評論中包含二級評論及二級展開評論。
二、程式碼講解
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多條,含二級評論!