04、Python爬虫——批量爬取douyin视频,下载到本地,半个小时内解决批量下载douyin视频
针对批量爬取douyin视频分为两期进行讲解,本期(第一期)内容是讲解如何在上批量下载douyin视频,如何快速的搭建环境,修改参数,让小伙伴们边看边学,半个小时内就可以轻松将视频批量进行下载。第二期内容主要是对代码进行详解,对爬虫感兴趣的小伙伴可以深入了解一下。
概要
针对批量爬取douyin视频分为两期进行讲解,本期(第一期)内容是讲解如何在上批量下载视频,如何快速的搭建环境,修改参数,让小伙伴们边看边学,半个小时内就可以轻松将douyin视频批量进行下载。第二期内容主要是对代码进行详解,对爬虫感兴趣的小伙伴可以深入了解一下。
下面的图片为爬取的视频
代码完整版及结果展示
废话不多说 直接放完整版代码,如果有小伙伴不想去研究的太深,直接拿走用就OK,参照下面我所讲解到所需要更换的参数进行修改,就可以批量下载各种各样的douyin视频啦
import requests
headers = {
'Cookie':'live_use_vvc=%22false%22; ttwid=1%7CG6lGqi6Ff4CkL7CvVzZUs1d4p1Wlhjt7HJ-6y-m_a10%7C1718359839%7C578cb6fbb8035bd5d8eb032a284e62731ea8c52fabea3d5d25ec23812f196784; xgplayer_user_id=540713429609; bd_ticket_guard_client_web_domain=2; SEARCH_RESULT_LIST_TYPE=%22single%22; UIFID_TEMP=51ca78498d256c95a0dced57d4510398a1a949b0b9c77a6623ae0f8de9c0e7bd6687731578462a35e6440cfea2793336ac550de0caae2b478cd3b342aeaddd0d1045737297af70d960bb15840dfad3a9; fpk1=U2FsdGVkX19cn86sMpnxCTyZelruhAHKmxPtHYJH0A9QtcNaEzzNbsK4pQjQ6CdchDqkxJGzFc+KrhSFX5xaXQ==; fpk2=ce58a5260ba4fa9cdedf4886e4cf45c6; UIFID=51ca78498d256c95a0dced57d4510398a1a949b0b9c77a6623ae0f8de9c0e7bd8518c6df8dc1ba20d6e6bb6ae0d8bccfbbd7ed734b1cfdb15ec9080a1a43f5cb352d2ec4cf7d8a37193952af907a9ea8aff2de45b8559b8abb9e76fd347120c94489e9a3b1a9674c74c9c70f42a2e02412dff3b0b09243af287c88767d3c748210dc22dd04d607bd7a72736930e40abbb3610f30e550389ae0855eecbcbe31b8; __live_version__=%221.1.2.2252%22; s_v_web_id=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa; dy_swidth=1536; dy_sheight=960; passport_csrf_token=36f176a3408c79b116c165ea08bb671e; passport_csrf_token_default=36f176a3408c79b116c165ea08bb671e; download_guide=%223%2F20240814%2F0%22; pwa2=%220%7C0%7C3%7C0%22; xgplayer_device_id=80801261586; __ac_signature=_02B4Z6wo00f01Y0BWtwAAIDBe2hT-FFUQDmNIV5AAAX-1GGEAB9ZaB21OJ9t.dxPXQdLSMi9oCmEoLE8UKshniY2BUzB8uasIRSDglbF2rGAIsfHWpzbT8WIrkQGBNrwqOMK9dfOyub5Us6905; douyin.com; device_web_cpu_core=16; device_web_memory_size=8; architecture=amd64; strategyABtestKey=%221723803732.47%22; csrf_session_id=3b1b688068bbd5595ac78ff25b14047f; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; n_mh=zZaPBSnkyqtBai3M6tY6vrYoypDErulzJKBWh0Qrs7Q; toutiao_sso_user=b70d55bb894b00add3212b7592a07d53; toutiao_sso_user_ss=b70d55bb894b00add3212b7592a07d53; passport_auth_status=e089787001c932d45db88204c6e6addf%2C; passport_auth_status_ss=e089787001c932d45db88204c6e6addf%2C; is_staff_user=false; __ac_nonce=066bf380000aa4eda554c; _bd_ticket_crypt_doamin=2; _bd_ticket_crypt_cookie=595e2a15361ded4fd2d2625d4739712a; __security_server_data_status=1; publish_badge_show_info=%220%2C0%2C0%2C1723807766475%22; store-region=cn-sd; store-region-src=uid; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAqZoS-o-UF_qYha33xhRR8WdUbd8y7AUI4-cUMA-k4XE%2F1723824000000%2F1723807787495%2F1723807757815%2F0%22; xg_device_score=7.6193612098364385; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.554%7D; sso_uid_tt=36fd926168b8b682239a5bccdb657c67; sso_uid_tt_ss=36fd926168b8b682239a5bccdb657c67; sid_ucp_sso_v1=1.0.0-KDJjOWM0ZWQxNWZjMzBkZGM4OGM1MWNmNDMzNDM3NjEzNWU0ZWU1MGIKCRDg9fy1BhjvMRoCbGYiIGI3MGQ1NWJiODk0YjAwYWRkMzIxMmI3NTkyYTA3ZDUz; ssid_ucp_sso_v1=1.0.0-KDJjOWM0ZWQxNWZjMzBkZGM4OGM1MWNmNDMzNDM3NjEzNWU0ZWU1MGIKCRDg9fy1BhjvMRoCbGYiIGI3MGQ1NWJiODk0YjAwYWRkMzIxMmI3NTkyYTA3ZDUz; sid_guard=a71eb1a258f4d5836d2d974aaac9c94f%7C1723808481%7C21600%7CFri%2C+16-Aug-2024+17%3A41%3A21+GMT; uid_tt=59b0f0eb529323e75c4c8c06d9c7d455; uid_tt_ss=59b0f0eb529323e75c4c8c06d9c7d455; sid_tt=a71eb1a258f4d5836d2d974aaac9c94f; sessionid=a71eb1a258f4d5836d2d974aaac9c94f; sessionid_ss=a71eb1a258f4d5836d2d974aaac9c94f; sid_ucp_v1=1.0.0-KDAyMTI4ZDUxZDJjOTA1OWIzMWIyNmY3NjcxNjU2OTI2NGYzYTBhZWUKCBDh9fy1BhgNGgJscSIgYTcxZWIxYTI1OGY0ZDU4MzZkMmQ5NzRhYWFjOWM5NGY; ssid_ucp_v1=1.0.0-KDAyMTI4ZDUxZDJjOTA1OWIzMWIyNmY3NjcxNjU2OTI2NGYzYTBhZWUKCBDh9fy1BhgNGgJscSIgYTcxZWIxYTI1OGY0ZDU4MzZkMmQ5NzRhYWFjOWM5NGY; odin_tt=421d97515f5c5cb073b1d91fbca72c15935fc3b22a3b8f1e7cba0da9d205490de1e5a03ac9c2681622fcb21d8314efb70d8b78a8736671637867ee6e3ce89fcd2316d6e726920636cea43b13505e4e57; passport_fe_beating_status=false; WallpaperGuide=%7B%22showTime%22%3A1723615106441%2C%22closeTime%22%3A0%2C%22showCount%22%3A1%2C%22cursor1%22%3A63%2C%22cursor2%22%3A0%7D; 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%3A960%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A16%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%3A100%7D%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%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A0%7D%22; IsDouyinActive=true; home_can_add_dy_2_desktop=%221%22; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCS2YzVEJvZW5vTFZ5THVzOHRBREhDaGo3elh4MmZUOW9xMW9oK2orSlU2OFEwcnRycU4xNHFQS1U1bHhmajdMNUkvLzNXRkJocktOMW1hb2VWdDk5WlE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; biz_trace_id=aec030d4',
'Referer':'https://www.douyin.com/user/MS4wLjABAAAA3q_M7SAG4eQnFrskafFBDLnycg_2s21oi7Q_aI42C2Q',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'
}
url = 'https://www.douyin.com/aweme/v1/web/aweme/post/?device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id=MS4wLjABAAAA3q_M7SAG4eQnFrskafFBDLnycg_2s21oi7Q_aI42C2Q&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&update_version_code=170400&pc_client_type=1&version_code=290100&version_name=29.1.0&cookie_enabled=true&screen_width=1536&screen_height=960&browser_language=zh-CN&browser_platform=Win32&browser_name=Edge&browser_version=120.0.0.0&browser_online=true&engine_name=Blink&engine_version=120.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=100&webid=7380299229899687463&msToken=8gdJJvLIyhS_BJtjtw7Fqu6mNVZbrR4qZwUd91GW7-zTxDLPHRc2ihWTkedEWHw8Toe1qvjz8KnzrBxK28MRww8keaOC98zmHIP3prq_ntj3oKTSSHJZObYF0oTkHHg%3D&a_bogus=Yv80QmhkDDDNXd6h5UCLfY3q6lZ3Ypsn0trEMD2fmVVbsg39HMPY9exErhTva26jN4%2FkIbfjy4hSYpqMxQIbA3v6HSRKlICh-g00t-P2so0j5ZhjCfukrUmF-vzWt-Bp-JV3EcvMoJKrFRw0AIee-wHvnwVxapt2&verifyFp=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa&fp=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa'
res = requests.get(url, headers=headers)
aweme_list = res.json().get("aweme_list")
for aweme in aweme_list:
title = aweme.get("desc")
url = aweme.get("video").get("play_addr").get("url_list")[-1]
res = requests.get(url)
with open(f"./章若楠/{title}.mp4", "wb") as f:
f.write(res.content)
print(f"{title}下载成功!")
下面就是爬取到的结果,在代码中对成功下载的视频进行打印,然后在本地文件夹中就可以查看到所爬取到的视频(下面下载的视频只是示例,我在运行不到秒就结束了)在这里要提醒大家一下,如果在爬取时间较长的视频时,尽量在网速比较快的情况下进行爬取
具体操作流程
1、代码环境搭建
运行代码的话,就避免不了使用一个好的环境,下方这个链接中,详细介绍了搭建环境的步骤,大家可以少走弯路直接参考,大家如果根据下方链接的流程进行配置的话10分钟就可以搭建成功。
2、代码简单介绍
为了能够快速的让大家掌握,并且调整参数,下面我将分成4步,快速的为大家进行介绍
1、文件的创建
第一步要在刚建立的文件夹下,创建一个Python文件,这个文件是用来存放代码的,同时在这个文件下创建一个新的文件夹,这个文件夹是用来存放下载视频的(在这里要注意一下,这个文件名称要和第四步的名称一样)
2、标头参数
大家可以看到这个标头下,有三个头,分别是Cookie、Referer和User-Agent,在这里我就不详细介绍这三个分别是什么意思了,在第二期内容中会详细进行介绍。 这里就用大白话为大家说明一下这三个的作用。这三个标头大家可以理解为,当我们要回家,打开一扇门时,需要一把钥匙,这样才能够正常的进入到房间内,进行一系列的活动
在这里三个标头就是一把钥匙,当我们想要请求服务器的时候,就需要用一把钥匙来证明我们的身份,当我们的身份合法时,就可以获取里面的内容了(在这里只是简单的进行介绍,第二期会详细说明)
3、请求地址
这个地址就是我们需要访问的网址
4、文件夹名称
大家在这里要注意的是,要和第一步创建存放视频的文件夹保持一致,否则会保存失败
3、修改参数
在修改参数这一步,大家将2、代码简单介绍的第2步和第3步代码中的参数修改为自己所要爬取视频的参数就OK啦 为了方便大家快速的应用,依旧是使用图片让大家更加清晰的了解参数所在的位置
在你想要爬取的页面鼠标右键,点击检查
1、点击顺序
在点击检查后,依次点击网络>Fetch/XHR>输入post,对post请求进行筛选,然后点击下方的post,就可以看到右方的一对数据
2、标头调参
右侧分别有标头、负载、预览、响应等等,目前我们只需用到标头中的参数对代码中的内容进行修改 首先可以看到请求URL,将URL全部复制下来,粘贴到代码中响应的位置(代码简单介绍中的第三步)
然后在请求URL下面这个模块中就是响应标头,滑动鼠标找到请求标头,对应着(代码简单介绍中的第二步),这三个标头都可以依次找到,然后进行复制粘贴,替换参数。
爬取数据
到这一步小伙伴们就可以在代码中点击右键,运行代码就可以批量下载视频啦,下一期将会详细对代码讲解。
更多推荐
所有评论(0)