動態

詳情 返回 返回

【GUI軟件】用python開發的油管博主紅人採集工具,一鍵批量爬取,含國家、郵箱等 - 動態 詳情

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

一、背景分析

1.1 開發背景

爬取目標: 油管博主

大家都知道,YouTube(以下簡稱油管)是全球最大的在線視頻社交平台,擁有億萬用户和龐大的日活躍用户羣體。平台上來自不同國家和地區的創作者們,藴藏着巨大的商業潛力。通過分析油管的用户數據,客户能夠更深入地掌握這些創作者的最新動態和商業價值,從而更有效地推動業務合作。

所以,我用python開發了個爬蟲工具,起名叫"爬油管博主軟件",如下。

1.2 軟件界面

軟件界面,如下:
軟件運行中截圖

1.3 結果展示

爬取結果1:(字段太多,可能看不清)
爬取結果抽查

爬取結果2:(清晰版)

docs.qq.com/sheet/DVEFhZlFKR1NXVEdN?tab=ht1er

1.4 演示視頻

小破站視頻:
【軟件演示】youtube博主採集工具,可爬取上萬條,含郵箱!

1.5 軟件説明

幾點重要説明,請詳讀了解:

  1. Windows用户可直接雙擊打開exe使用,無需安裝Python,非常方便!
  2. 軟件通過模擬瀏覽器爬取,能有效規避對端反爬
  3. 支持篩選:地區(多)和粉絲數範圍
  4. 支持多個的設置項有:搜索關鍵詞、國家地區
  5. 爬取過程中,每爬一條,存一次csv。並非爬完最後一次性保存,防止因異常中斷導致丟失前面的數據(每條間隔1~2s)
  6. 爬取過程中,有log文件詳細記錄運行過程,方便定位
  7. 爬取過程中,博主篩選同時進行。並非全部博主爬完再一次性篩選,效率較高!
  8. 博主csv含16個核心字段:搜索關鍵詞,視頻標題,視頻鏈接,當前視頻播放數,博主名稱,博主鏈接,國家,telegram鏈接,whatsapp鏈接,twitter鏈接,facebook鏈接,instagram鏈接,粉絲數,視頻總數,總觀看次數,郵箱。

    二、主要技術

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

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

    python主要實現邏輯:

    2.1 軟件界面

    軟件主體界面採用tkinter開發,tkinter是Python的標準圖形用户界面(GUI)工具包,允許創建窗口、對話框、按鈕等桌面應用程序的組件。tkinter內置於Python中,因此無需額外安裝任何庫即可使用它。

部分代碼實現:

# 創建主窗口
root = tk.Tk()
root.title('YouTube博主採集軟件v1.0')
# 設置窗口大小
root.minsize(width=900, height=650)
# 搜索關鍵詞
tk.Label(root, text='搜索關鍵詞:').place(x=30, y=130)
query = tk.StringVar()
query.set('')
entry = tk.Entry(root, bg='#ffffff', width=80, textvariable=query)
entry.place(x=110, y=130, anchor='nw')  # 擺放位置
tk.Label(root, justify='left', fg='red', text='多關鍵詞以|分隔').place(x=650, y=130)

2.2 爬蟲模塊

爬蟲採用selenium模擬瀏覽器操作發送請求。

初始化瀏覽器部分:

# 初始化瀏覽器
chrome_driver = './chromedriver.exe'  # 瀏覽器驅動
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--mute-audio')
browser = webdriver.Chrome(executable_path=chrome_driver, options=chrome_options)
wait = WebDriverWait(browser, 10)
self.tk_show('\n開始爬取關鍵詞[{}],瀏覽器初始化中,請等待..\n'.format(keyword))
# 開始爬取
js = 'window.open("https://www.youtube.com/results?search_query={}");'.format(quote(keyword))
browser.execute_script(js)

解析博主所在國家代碼:

# 國家
try:
    country = browser.find_element(By.XPATH,
                                   '//*[@icon="privacy_public"]/../../td[2]').text
except:
    country = ''
if country_list != ['']:  # 國家不是空
    if country not in country_list and country not in country_list2:
        self.tk_show('國家地區是[{}], 不滿足指定國家地區:{}, 跳過!'.format(country, country_list))
        browser.close()
        browser.switch_to.window(handles[-2])
        continue

三、功能介紹

3.1 配置chromedriver

開始採集前,先安裝最新版Chrome瀏覽器,再配置對應版本的chromedriver驅動:

chromedriver下載説明:docs.qq.com/doc/DVFZNdk91eGV0cVRH

3.2 採集軟件

配置好chromedriver後,打開youtube_user.exe軟件,登錄用户:
軟件登錄界面

並在主界面填寫爬取條件:
設置爬取條件

點擊開始執行按鈕進行採集。

四、原創聲明

軟件【爬油管博主軟件】首發於眾公號"老男孩的平凡之路",歡迎交流!!

我是@馬哥python説,一名10年程序猿,持續分享Python乾貨中!

user avatar aitigou 頭像
點贊 1 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.