头图
本软件工具仅限于学术交流使用,严格遵循相关法律法规,符合平台内容合法合规性,禁止用于任何商业用途!

一、背景分析

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干货中!


马哥python说
12 声望1 粉丝