動態

詳情 返回 返回

douyin_search_comment_tool | 2025自研python軟件採集抖音評論區數據 - 動態 詳情

本軟件工具僅限於學術交流使用,嚴格遵循相關法律法規,符合平台內容合法合規性,禁止用於任何商業用途!

一、背景調研

1.1 開發背景

抖音作為國內流量極為突出的短視頻平台,擁有龐大的用户羣體以及億級以上的日活躍用户,其視頻下方的評論區藴含着豐富的信息價值。在合法合規的前提下,經過充分的研究與探索,為了助力客户能夠更深入地理解消費者對於商品和品牌的看法與反饋,以更有效地把握消費者的喜好、需求和購買意圖,我們開發了一款基於 Python 技術的工具,旨在在符合平台規則和相關法律法規的框架內,對抖音平台上公開且允許獲取的評論數據進行收集分析。

我用python開發的爬蟲採集工具【爬抖音搜索評論軟件】,支持2種模式的評論採集:

  • 根據關鍵詞采集評論,爬取思路:作品關鍵詞->作品鏈接->評論
  • 根據作品鏈接採集評論,爬取思路:作品鏈接->評論

用户可根據自身需求,在遵守相關規定的情況下,選擇其中一種模式進行合規的評論數據收集與分析。

1.2 軟件界面

軟件界面,如下:

請在此添加圖片描述

運行截圖2

1.3 結果展示

經過合規流程採集分析後得到的數據示例:

爬取結果1-筆記數據:

筆記數據.csv

評論數據.csv

1.4 演示視頻

軟件運行演示: 【軟件演示】抖音評論區採集工具,支持2種模式:指定關鍵詞和指定作品鏈接:

http://bilibili.com/video/BV1fH21YEEDV

1.5 軟件説明

軟件需符合相關法律法規的情況下使用。幾點重要説明,請詳讀了解:

  1. Windows用户可直接雙擊打開使用,無需Python運行環境,非常方便!
  2. 軟件通過接口協議爬取,並非通過模擬瀏覽器等RPA類工具,穩定性較高!
  3. 先在cookie.txt中填入自己的cookie值,方便重複使用(內附cookie獲取方法)
  4. 支持篩選:排序方式(綜合排序/最新發布/最多點贊)和發佈時間(不限/一天內/一週內/半年內)
  5. 支持多個的設置項有:筆記關鍵詞、筆記鏈接、評論關鍵詞、IP屬地
  6. 爬取過程中,每爬一頁,存一次csv。並非爬完最後一次性保存!防止因異常中斷導致丟失前面的數據(每條間隔1~2s)
  7. 爬取過程中,有log文件詳細記錄運行過程,方便回溯
  8. 爬取過程中,評論篩選同時進行。並非全部評論爬完再一次性篩選!所以效率較高!
  9. 筆記csv含13個字段,有:關鍵詞,頁碼,視頻標題,視頻鏈接,作者暱稱,作者uid,作者鏈接,作者粉絲數,發佈時間,點贊數,評論數,收藏數,轉發數
  10. 評論csv含11個字段,有:目標鏈接,頁碼,評論者暱稱,評論者id,評論者uid,評論者主頁鏈接,評論時間,評論IP屬地,評論點贊數,評論級別,評論內容
    以上。

二、主要技術

軟件全部模塊採用python語言開發,主要分工如下:

tkinter:GUI軟件界面 
requests:在合法合規前提下進行數據請求 
json:解析符合規定獲取到的響應數據 
pandas:保存csv結果、在合法範圍內進行數據清洗 
logging:日誌記錄操作過程,以便檢查合規性

出於版權以及確保合法合規使用的考慮,暫不公開源碼,僅向符合使用條件且遵守相關規則的用户提供軟件使用。

三、功能介紹

3.0 填寫cookie

在開始進行合規的數據收集分析前,使用者需將自己通過合法途徑獲取的 cookie 值填入 cookie.txt 文件。同時,請務必嚴格遵守抖音平台對於 cookie 使用的相關規定。

cookie獲取方法:

cookie獲取方法

3.1 根據關鍵詞爬評論

爬取思路:作品關鍵詞->作品鏈接->評論

先填寫左上區的筆記篩選項,再填寫右上區的評論篩選項,點擊按鈕 1 進行合規的數據收集操作。。

3.2 根據作品鏈接爬評論

爬取思路:作品鏈接->評論

先填寫中上區的作品鏈接,再填寫右上區的評論篩選項,點擊按鈕 2 進行合規的數據收集操作。。

四、採用技術棧

完整源碼採用python作為開發語言,用到的技術框架:

tkinter:GUI軟件界面
requests:爬蟲請求
json:  解析響應數據
pandas:保存csv結果、數據清洗
logging:日誌記錄

軟件界面核心代碼:

# 創建主窗口
root = tk.Tk()
root.title('爬抖音搜索評論軟件v1.2')
# 設置窗口大小
root.minsize(width=900, height=650)

爬蟲部分代碼:

# 發送請求
r = requests.get(url, headers=h1)
# 接收響應數據
json_data = r.json()

保存結果數據核心代碼:

# 保存數據到DF
df = pd.DataFrame(
    {
        '目標鏈接': 'https://www.douyin.com/video/' + str(video_id),
        '頁碼': page,
        '評論者暱稱': user_name_list,
        '評論者id': user_unique_id_list,
        '評論者uid': uid_list,
        '評論者主頁鏈接': user_url_list,
        '評論時間': create_time_list,
        '評論IP屬地': ip_list,
        '評論點贊數': like_count_list,
        '評論級別': cmt_level_list,
        '評論內容': text_list,
    }
)
# 保存到csv
df.to_csv(self.result_file2, mode='a+', header=header, index=False, encoding='utf_8_sig')

日誌記錄功能核心代碼:

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'
    # 將其保存到特定目錄,ap方法就是尋找項目根目錄,該方法博主前期已經寫好。
    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

END、原創聲明

軟件【爬抖音搜索評論軟件】首發公眾號【老男孩的平凡之路】,僅限於學術交流技術探討,請勿用於商業用途,歡迎在遵守相關規則和法律的前提下交流探討!
_
讀者你好,我是馬哥,全網累計粉絲上萬,歡迎一起交流python技術; 各平台搜索“馬哥python説”:知乎、嗶哩嗶哩、小紅書、新浪微博。

user avatar yukuaideqingwa 頭像 zixindebocai 頭像 lyh_bxxw 頭像 zlibrarynew 頭像 vqh2pmxu 頭像 yongle_hengdi 頭像 cixiangdehai 頭像 d_66583b4a31342 頭像
點贊 8 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.