目錄一、爬取目標1.1 效果截圖1.2 演示視頻1.3 軟體說明二、代碼講解2.1 爬蟲採集模塊2.2 軟體界面模塊2.3 日誌模塊三、獲取源碼及軟體 一、爬取目標 您好!我是@馬哥python說 ,一名10年程式猿。 我用python開發了一個爬蟲採集軟體,可自動抓取小紅書評論數據,並且含二級評論 ...
目錄
一、爬取目標
您好!我是@馬哥python說 ,一名10年程式猿。
我用python開發了一個爬蟲採集軟體,可自動抓取小紅書評論數據,並且含二級評論數據。
為什麼有了源碼還開發界面軟體呢?方便不懂編程代碼的小白用戶使用,無需安裝python,無需改代碼,雙擊打開即用!
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多條,含二級評論!
我是@馬哥python說 ,一名10年程式猿,持續分享python乾貨中!