05、Python爬虫——批量爬取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}下载成功!")

 requests库

        requests是一个非常流行的Python库,用于简化HTTP请求的发送,它提供了一个简单的API来发出各种类型的HTTP请求,并且处理响应数据非常方便

        功能:发送get请求   发送post请求    添加请求头    处理JSON数据(将JSON响应解析为Python字典)等等

headers请求头

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'
}

 在请求标头中,存在很多标头信息,一般在代码中只写这三个标头就可以正常的爬取了,那有的小伙伴在想我可不可以只写一个标头呢?  回答是可以的,但是要区分是什么网站,有的网站只需要写一个user-Agent 标头,就可以向服务器发送请求了,对数据进行爬取。  

总之小伙伴们记住一句话,无论是什么网站,这三个标头全都写上,你的代码就一定可以向服务器发送请求,如果不能的,那只能说明你的代码出现了问题

User-Agent:请求头用于告诉服务器客户端的软件和版本信息。它通常包含了浏览器、操作系统、设备类型等信息。服务器可以根据User-Agent的信息调整返回的内容,以适应不同的浏览器或设备。

Cookie: 请求头包含由客户端在之前的请求中收到的 cookie 信息。这些 cookies 是由服务器设置的,通常用于维持会话状态、跟踪用户活动等。

Referer:请求头告诉服务器当前请求的来源页面的 URL,即用户是从哪个页面点击过来的。

url请求地址

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'

请求地址就是所要爬取的地址,这里要注意一下不是浏览器导航栏中的url地址,而是 

JSON解析

res = requests.get(url, headers=headers)

aweme_list = res.json().get("aweme_list")

         1、这行代码使用requests库发起一个http  get请求,url是请求地址,headers是http的头部信息,请求相应的信息会存储到res变量中 

         2、从res相应对象中提取JSON数据,res.json()方法将响应内容解析为Python字典,get("aweme_list")从这个字典中提取键“aweme_list”对应的值。并且存储到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)

        遍历 aweme_list 中的每一个 aweme 对象。aweme_list 是从之前的 JSON 响应中提取出来的一个列表。

        从当前的 aweme 对象中获取键 "desc" 对应的值,并将其赋给变量 title。这个值通常是一个字符串,表示视频的标题。

        从当前的 aweme 对象中提取视频的播放地址:

      aweme.get("video") 获取 video 字典。

      video.get("play_addr") 获取 play_addr 字典。

      play_addr.get("url_list") 获取一个 URL 列表。

      [-1] 选择这个列表中的最后一个 URL。这通常是视频的实际播放地址。

        使用 requests 库发起一个 HTTP GET 请求,目标是从指定的 url 获取数据。res 将保存这个请求的响应。

存入本地

    with open(f"./章若楠/{title}.mp4", "wb") as f:
        f.write(res.content)
    print(f"{title}下载成功!")

           首先使用with语句打开一个文件,确保文件在操作完成后正确关闭,文件路径由 f"./章若楠/{title}.mp4" ,其中 title 是从 aweme 对象中提取的标题。

           res.content 包含从视频播放 URL 获取的二进制响应内容,即视频的实际数据。f.write() 方法将这些数据写入到之前打开的文件中。

    在这里要注意一点,为什么用的是res.content而不是res.text, res.text 用于获取响应的文本内容,而 res.content 用于获取二进制内容。视频文件是二进制数据,因此应该使用 res.content 来确保数据的正确性。如果使用 res.text,可能会导致视频文件损坏或内容无法正确保存,因为文本编码可能会损坏二进制数据。      

到这里本两期的douyin本地视频爬虫批量下载就已经全部分享完啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值