次程序用于批量爬取抖音个人主页下的所有视频,不包括动图和图文
import requests
# TODO 修改为自己的相关参数
# TODO Cookie、Referer、UserAgent等,它们用于模拟真实的浏览器请求,使服务器能正确响应请求
cookie = 'my_rd=2; UIFID_TEMP=c4683e1a43ffa6bc6852097c712d14b81f04bc9b5ca6d30214b0e66b4e3852804a34d8e0a2f05807b2231bd520c04aa62efce7eec43412100334411ebff561d7ca4bac1c7f1e532c10d3466ef69e6e141bbf474476ffb6582d08701b9dc7da6c395088955c2dae3580d70d432abffab3; fpk1=U2FsdGVkX19erFRabevaQ0sKXWUicuCc4T24o9LYEFrjP6LRFwbWeFrEPgdrdBV7x1RbJRwAgn1GDBfRybQPeQ==; fpk2=5f4591689f71924dbd1e95e47aec4ed7; bd_ticket_guard_client_web_domain=2; SEARCH_RESULT_LIST_TYPE=%22single%22; UIFID=c4683e1a43ffa6bc6852097c712d14b81f04bc9b5ca6d30214b0e66b4e3852804a34d8e0a2f05807b2231bd520c04aa62efce7eec43412100334411ebff561d7523b26f903ec6a0a1ca1a7bf55eb65f5f8647066ec86af47c335cc7f2c6519f131e3fc84a1316c84268b171687d4a288559951166f9f9ee299037b70b2a2ebf942836009870335feda09c0aa1af22c1c109e74cb168d676274a12b5ccf458476ae37d55d5266ee5aed9578d7c6490142d175622b075a2a6a4a0e4e8076b2a176; xgplayer_user_id=211112302194; passport_assist_user=CkEIDK9MlQEeFzt1CHJtdbgYzdQSPuq4RFgsEK9EGfpK45N71dcmowDDb8Fo53lJrj2V92zcpkiqaaS4s3lVd9EN5BpKCjy9rgj1yqcTd5q-xjTxkrF15yTtO-YYiSxki4ahplQo-KcYCG_lcy3qzKI77f2syESIHUyWe4p0PsaWkUQQ9eDYDRiJr9ZUIAEiAQOseppY; n_mh=stmUKmROWbh3uumxOGqvODFuPaXHL3wUAiXTh_cH_7w; uid_tt=fc197b821e173bdbe6a99c8c347a944c; uid_tt_ss=fc197b821e173bdbe6a99c8c347a944c; sid_tt=bf356149407821c4d1a521aaadd88bb8; sessionid=bf356149407821c4d1a521aaadd88bb8; sessionid_ss=bf356149407821c4d1a521aaadd88bb8; is_staff_user=false; _bd_ticket_crypt_cookie=0dc124c906110e89e877affb20d30d30; store-region=cn-fj; store-region-src=uid; s_v_web_id=verify_m1supspk_vZFP8h4G_56iv_4j1t_AYUt_BD0fY42MuPLb; SelfTabRedDotControl=%5B%5D; passport_csrf_token=86ef12d479f48440a5acea228b0cf482; passport_csrf_token_default=86ef12d479f48440a5acea228b0cf482; live_use_vvc=%22false%22; ttwid=1%7C1sZ9z2W_iNv7qA4uQVHvYj1RyNbuIjQR6J7lp7MezIg%7C1729957470%7C94747023396bcb76a415207ddfcf2d37dd9faee9da1f55d324225b15f47d4890; sid_guard=bf356149407821c4d1a521aaadd88bb8%7C1730032577%7C5184000%7CThu%2C+26-Dec-2024+12%3A36%3A17+GMT; sid_ucp_v1=1.0.0-KGFmN2JjNTQzZjA5ZTdhODRjODRlMmVkNGI5NWZlOTUxOGUxOTNhZjUKGwjO_JCciYyNBBDB5_i4BhjvMSAMOAZA9AdIBBoCaGwiIGJmMzU2MTQ5NDA3ODIxYzRkMWE1MjFhYWFkZDg4YmI4; ssid_ucp_v1=1.0.0-KGFmN2JjNTQzZjA5ZTdhODRjODRlMmVkNGI5NWZlOTUxOGUxOTNhZjUKGwjO_JCciYyNBBDB5_i4BhjvMSAMOAZA9AdIBBoCaGwiIGJmMzU2MTQ5NDA3ODIxYzRkMWE1MjFhYWFkZDg4YmI4; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A1%7D; dy_swidth=1536; dy_sheight=864; is_dash_user=0; publish_badge_show_info=%221%2C0%2C0%2C1731651466642%22; __ac_nonce=067398baf00fbbd375290; __ac_signature=_02B4Z6wo00f01dU1guQAAIDBQSZtnz30.anVFYZAABJ2e7; douyin.com; device_web_cpu_core=8; device_web_memory_size=8; architecture=amd64; csrf_session_id=42e7eb2b3dba77d32733af54b020a395; strategyABtestKey=%221731824563.344%22; biz_trace_id=38ca85f3; WallpaperGuide=%7B%22showTime%22%3A1731824569038%2C%22closeTime%22%3A0%2C%22showCount%22%3A1%2C%22cursor1%22%3A10%2C%22cursor2%22%3A2%7D; XIGUA_PARAMS_INFO=%7B%7D; pwa2=%220%7C0%7C3%7C0%22; passport_fe_beating_status=true; download_guide=%223%2F20241117%2F0%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A0%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A0%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A1%7D%22; xg_device_score=7.583871944698103; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCQU1vMkJFU2JTbStISndLb2tuWk9YZHUwa0w2OWgrNWw0bjIxanEweDlDZ2NFMUtKdlp5YUVaSE1FRytSREdXekIwWGo1dVFHQnpWLzFjenZ5eEF0RHM9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; IsDouyinActive=true; home_can_add_dy_2_desktop=%220%22; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1536%2C%5C%22screen_height%5C%22%3A864%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A8%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A200%7D%22; odin_tt=f27e038f4442b2a911e281be9777deafe9ea0006e7b9da5ab192d9c04044a9ad2c5f3e34a273fdfb1d140eb0652368ad'
referer = 'https://www.douyin.com/user/MS4wLjABAAAAaoJpTBPXBTqtjDdBU2OKgrUk6npyCKU4UUj7MLerkkkuqCDxPI1Vb7_d8a-JpiQk?from_tab_name=main&is_search=0&list_name=follow&nt=0'
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'
# TODO 定义请求头
headers = {
'Cookie': cookie ,
'Referer': referer,
'User-Agent': UserAgent
}
# TODO 个人主页请求 URL
url = 'https://www.douyin.com/aweme/v1/web/aweme/post/?device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id=MS4wLjABAAAAaoJpTBPXBTqtjDdBU2OKgrUk6npyCKU4UUj7MLerkkkuqCDxPI1Vb7_d8a-JpiQk&max_cursor=0&locate_query=false&show_live_replay_strategy=1&need_time_list=1&time_list_query=0&whale_cut_token=&cut_version=1&count=18&publish_video_strategy_type=2&from_user_page=1&update_version_code=170400&pc_client_type=1&pc_libra_divert=Windows&version_code=290100&version_name=29.1.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Edge&browser_version=131.0.0.0&browser_online=true&engine_name=Blink&engine_version=131.0.0.0&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=200&webid=7365721194295739930&uifid=c4683e1a43ffa6bc6852097c712d14b81f04bc9b5ca6d30214b0e66b4e3852804a34d8e0a2f05807b2231bd520c04aa62efce7eec43412100334411ebff561d7523b26f903ec6a0a1ca1a7bf55eb65f5f8647066ec86af47c335cc7f2c6519f131e3fc84a1316c84268b171687d4a288559951166f9f9ee299037b70b2a2ebf942836009870335feda09c0aa1af22c1c109e74cb168d676274a12b5ccf458476ae37d55d5266ee5aed9578d7c6490142d175622b075a2a6a4a0e4e8076b2a176&verifyFp=verify_m1supspk_vZFP8h4G_56iv_4j1t_AYUt_BD0fY42MuPLb&fp=verify_m1supspk_vZFP8h4G_56iv_4j1t_AYUt_BD0fY42MuPLb&msToken=WXi8XOl91625Pa8fFfH3Cx_8g9-d1qgDvTRRPllPlQz09oFCEQaJEYxKio1tYxjSP2nVt5gREl8OoyVXSowoTj33SyZktr8CjyouQxBYwoT1TBmOl0K6atShVpKuh63Ax6ycDAJflTKv70qo6JuTgXDaMs2UOZhyHrAJ6hP2DQ4w&a_bogus=Ov05kwUwxNWnFdFGuKntSSCU916%2FrBWy13iKWJnTeOutb10OCbNmwPeZJxox48I4fSBwi9IHlV0%2FbdxcBtUzZq9kLmkvuL0bIG%2FCV0vo2qNgTMJdDNfqC8mzowsK0YJNaAC1E1g5IsMrIfnRIH5plQ%2FGC5F9QcfgWNpVpMtyJDSWpsgTnnQGt-hT'
res = requests.get(url, headers=headers)
# TODO 从响应结果(以JSON格式返回)中获取视频列表数据
aweme_list = res.json().get("aweme_list")
# TODO 遍历视频列表中的每一个视频元素
for aweme in aweme_list:
# TODO 获取视频的标题
title = aweme.get("desc")
# TODO 获取视频的播放地址,取最后一个元素作为播放地址
url = aweme["video"]["play_addr"]["url_list"][-1]
# TODO 只保存视频
invalid_prefixes = {'https://sf1', 'https://sf2', 'https://sf3', 'https://sf5', 'https://sf6', 'https://sf7', 'https://sf8', 'https://sf9'}
if url[-3:] != 'mp3' and not url.startswith(tuple(invalid_prefixes)):
# TODO 使用获取到的视频播放地址再次发送GET请求,获取视频的二进制内容
res = requests.get(url)
# TODO 以二进制写入模式打开一个文件,路径为当前目录下的"./video/"文件夹
with open(f"./video/{title}.mp4", "wb") as f:
# TODO 将获取到的视频二进制内容写入到文件中
f.write(res.content)
# TODO 打印提示信息,表示该视频下载成功
print(f"-----------{title}视频 下载成功!-----------")
print()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。