提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
自动化抖音登录并获取视频链接
前言
在这篇博客中,我将详细介绍如何使用 Selenium 和 Python 来自动化登录抖音并获取特定用户发布的视频链接。这个项目可以用于个人学习或数据分析等目的。请确保在合法和道德的范围内使用此脚本,避免侵犯隐私或其他法律问题。
提示:以下是本篇文章正文内容,下面案例可供参考
一、环境准备
首先,您需要安装 Python 和 Selenium 库,以及对应的 WebDriver。本教程使用的是 Microsoft Edge 浏览器,因此需要下载 Edge 的 WebDriver。
安装 Python:
确保您的计算机已安装 Python。
安装 Selenium:
打开命令行工具,运行以下命令:
pip install selenium
下载 WebDriver:
根据您的 Edge 浏览器版本,从 Microsoft 官网 下载对应版本的
二、使用步骤
下面的 Python 脚本包含了自动化处理的完整步骤:
设置 WebDriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service as EdgeService
from selenium.webdriver.edge.options import Options as EdgeOptions
edge_service = EdgeService(executable_path="E:/Project/pythonProject5/msedgedriver.exe")
edge_options = EdgeOptions()
driver = webdriver.Edge(service=edge_service, options=edge_options)
在这部分代码中,我们设置了 Selenium 用于操作 Edge 浏览器的 WebDriver。您需要替换 executable_path 为您的 msedgedriver.exe 文件的实际路径。
登录抖音
driver.get("https://www.douyin.com")
time.sleep(70) # 手动登录并完成验证
这里,脚本将打开抖音的登录页面,您需要在这70秒内手动完成登录和验证步骤。
获取并保存 Cookies
cookies = driver.get_cookies()
driver.quit()
登录后,脚本会获取并保存当前的 Cookies,这些 Cookies 将用于之后的自动登录。
使用 Cookies 实现自动登录
driver = webdriver.Edge(service=edge_service, options=edge_options)
driver.get("https://www.douyin.com/user/MS4wLjABAAAAgMQy4T8hCfLX9FNagKRebwDXFF8iKZExbzcv9sBePEc?modal_id=7373376408967564544&vid=7373376408967564544")
for cookie in cookies:
driver.add_cookie(cookie)
driver.refresh()
time.sleep(5)
这部分代码重新打开浏览器,使用之前保存的 Cookies 自动登录到指定的用户页面。
获取视频 URL
video_sources = driver.find_elements(By.XPATH, '//video/source[@src]')
for source in video_sources:
video_url = source.get_attribute('src')
print(f"Video URL: {video_url}")
driver.quit()
最后,脚本搜索页面中的视频元素,并打印出视频的直接链接。
结论
通过本项目为通过 Selenium 自动化工具来控制浏览器,实现对抖音视频链接的自动获取。这只是一个简单示例,还可以在此基础上扩展更多的功能,如自动化视频下载、分析视频内容等。
延伸:根据之前爬取的视频url批量下载视频
import requests
def download_video(video_urls):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0',
'referer':'https://www.douyin.com/'
}
for i, url in enumerate(video_urls):
response = requests.get(url, stream=True, headers=headers)
if response.status_code == 200:
with open(f"video_{i+1}.mp4", 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
print(f"下载完成: video_{i+1}.mp4")
else:
print(f"下载失败: {url}, 状态码: {response.status_code}")
# URL 列表
video_urls = [
"https://v3-web.douyinvod.com/a13376a396c310b60f24991ebdd5ba5a/6699daf9/video/tos/cn/tos-cn-ve-15c001-alinc2/oME9ecETnRr4j7DgBgfZFKADQ5IEswwpA3UmmA/?a=6383&br=1426&bt=1426&btag=80000e00030000&cd=0%7C0%7C0%7C3&ch=26&cquery=100H_100K_100o_100w_100B&cr=3&cs=0&cv=1&dr=0&ds=6&dy_q=1721348019&feature_id=f0150a16a324336cda5d6dd0b69ed299&ft=AJkeU_TERR0sLOC3NDv2Nc0iPMgzbL0m8usU_4iYIhJJNv7TGW&is_ssr=1&l=202407190813382ABC986EA3258D65BFB8&lr=all&mime_type=video_mp4&qs=0&rc=NjQ0NzloZDczODpnNTY4aUBpajd0cW05cnRxczMzNGkzM0AtYWA2Yy8tX2IxY2EwLjJiYSNgLTBmMmRjcDZgLS1kLTBzcw%3D%3D4",
"https://v3-web.douyinvod.com/eee97364c03b2550ae09872fce5b1ee3/6699db91/video/tos/cn/tos-cn-ve-15c001-alinc2/oYvQCEhS05mADDNWN2iNBidA9ArBPgeDWIfJN8/?a=6383&ch=164&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1432&bt=1432&cs=0&ds=3&ft=AJkeU_TERR0sLOC3NDv2Nc0iPMgzbL1rzusU_4iYIhJJNv7TGW&mime_type=video_mp4&qs=1&rc=aDhoNTo5OTs4ZmU1ODM2ZUBpanZybXM5cjw1czMzNGkzM0AyMTJhLl5jXi4xMWMuMDBiYSMub140MmRjcm5gLS1kLTBzcw%3D%3D&btag=c0000e00028000&cquery=100K_100o_101s_100B_100H&dy_q=1721348257&feature_id=46a7bb47b4fd1280f3d3825bf2b29388&l=20240719081736D5C304AA58C47467E724&__vid=7382577994998484251"
]
download_video(video_urls)