From a90648272ba083bdee34027e4044476a1928e406 Mon Sep 17 00:00:00 2001 From: zjf Date: Wed, 28 May 2025 19:31:36 +0800 Subject: [PATCH] rpa m --- src/cluster/rpa.py | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/cluster/rpa.py b/src/cluster/rpa.py index 5bd06ce..4dc9891 100644 --- a/src/cluster/rpa.py +++ b/src/cluster/rpa.py @@ -59,8 +59,8 @@ def parse_cookies(cookie_string: str): # cURL 的 Cookie 字符串 -cookie_string = """ttwid=1%7CAlswAFfbJOHidyVPEXddfGgbBNE_6iRNBz6HDTaozXA%7C1747815204%7Cb870b4ca77b2c009f9590b4e141131073a672c3ccba978dfefb99c9c6128b0bc; x-web-secsdk-uid=3348cdbf-569c-4774-8473-b80937932fe6; _tea_utm_cache_10000007=undefined; __live_version__=%221.1.3.2388%22; has_avx2=null; device_web_cpu_core=28; device_web_memory_size=8; live_use_vvc=%22false%22; hevc_supported=true; csrf_session_id=67de4e04541c2671846bd21690f930a1; fpk1=U2FsdGVkX1+zlxnzV1Dn2KDWd2f1ji2u0F1BTgYhZcmekH91jUXGepiO1FqDrU16fl8t5Y4zAgIIPRl23tohkA==; fpk2=8369da3c75ccd12bc017791df73a85c8; xgplayer_user_id=609143978726; xgplayer_device_id=89685152902; __security_mc_1_s_sdk_crypt_sdk=a2889a4b-4a9d-9d85; bd_ticket_guard_client_web_domain=2; passport_csrf_token=461e8d0a49990110e082d04ab3fbb039; passport_csrf_token_default=461e8d0a49990110e082d04ab3fbb039; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; d_ticket=2a895ea0e5832f92e030ef98d0e4d5faec761; n_mh=U-zSkOHSn3qGUvq5TNKK4MFeK2TmpF6av96C6xKpzk0; is_staff_user=false; SelfTabRedDotControl=%5B%5D; __security_mc_1_s_sdk_cert_key=61483cd4-4421-b001; __security_server_data_status=1; publish_badge_show_info=%220%2C0%2C0%2C1747815907432%22; download_guide=%223%2F20250521%2F0%22; webcast_local_quality=origin; h265ErrorNumNew=-1; SEARCH_RESULT_LIST_TYPE=%22single%22; is_dash_user=1; volume_info=%7B%22volume%22%3A0.6%7D; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAkRqYED3KC9TrV2-VkWp_aTXs9sr_XfFG6HPDMAMCkbc%2F1747843200000%2F0%2F1747816041114%2F0%22; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAkRqYED3KC9TrV2-VkWp_aTXs9sr_XfFG6HPDMAMCkbc%2F1747929600000%2F0%2F1747882350236%2F0%22; WallpaperGuide=%7B%22showTime%22%3A1747882354044%2C%22closeTime%22%3A0%2C%22showCount%22%3A1%2C%22cursor1%22%3A10%2C%22cursor2%22%3A2%7D; home_can_add_dy_2_desktop=%221%22; s_v_web_id=verify_maz4smyj_138edc41_3fe9_f29a_92e2_ec86048a1233; __ac_nonce=0682ee99f0027f761e605; __ac_signature=_02B4Z6wo00f01GB2FOgAAIDD.hK0eXqTmARgVhBAAHA6cd; biz_trace_id=259eff86; sdk_source_info=7e276470716a68645a606960273f276364697660272927676c715a6d6069756077273f276364697660272927666d776a68605a607d71606b766c6a6b5a7666776c7571273f275e5927666d776a686028607d71606b766c6a6b3f2a2a6d6e6e756f606d6d666b6d6260636d67616662636e6060626269756f666d61662a767164716c662a6f762a6c6b756462602b6f76592758272927666a6b766a69605a696c6061273f27636469766027292762696a6764695a7364776c6467696076273f275e5827292771273f2732313532363c31353c323132342778; bit_env=oWBCmDtYAj2HbhkH6zIQEgNv8Ymi4yKZdZ4LZi0wXRix6eYhAe8oZ1HF6J40tNd0YwzGcgHi057EFZJCk2Vn9RLHwxuZ8kKNA1aJoQmVzsx2c-i6EaC38GPvpskIF4eG_q_WbHvUWKSKRYrKfmYN4ZUrxhhzf7tmwWCCyr_T9BGbH-BZjLLRsJM8GJ2XrCrc3EqWGebbzHXNPb5h_qTZfOjTm1_eQEXrX8s99rmL9HjgeYgMCPvXJ6q5VQ0HASHt6EpIFywn2F95lp1viwbWQgo32Ki8n4-Ko41VMwkkkXagTZemWSg-4j5PsYPqDEsFkOkRhmrqylUe0LI5c8wYhdo4vQzMXd4cMyFzx-KBIxqrA0ik4dRosV-5eX2XVCMfHa57VaAu3fvwcwU1Atx5bPLJhGjXN8eu5dBHyZaW4pJ5YTVNHBmnsq8Jvdsxm55DHw0RzQfo_ll909KhHGjWRW8ZUmwqXTJ6aSc1JuUTKDMtNI60E3TqEXeZlhVPAig1QIbO-CwHuvr6Kh_C33bXroIYZAcJugfNOLzmOdRhwrk%3D; gulu_source_res=eyJwX2luIjoiY2U2ZGQ3NDE5YmRhYjA4ZTJhN2VmZDIwODlkMTA3YmJlZjUyZjUyYzYxMjVkMDliYjcyYmE3MGEzYWYxMjU4NCJ9; passport_auth_mix_state=cxn42xqhg7lekwow283jvoymvdco55vh; passport_mfa_token=Cjc8QG9MwQWQ9%2FXZhWf6VlEAxCHHj73fI6CfwtVKEcJ4MniaFg4vaO32TXYZeknITWwrmlfhS19wGkoKPAAAAAAAAAAAAABPBs2z7m6q5G34c6qcWc6j9g6og8f%2FMlah%2FbIscZRc1mModqr7FK4VN5GIghX%2B%2FSpKtBCHh%2FINGPax0WwgAiIBA5CGJ34%3D; passport_assist_user=CkBFl-E3t3kqljYklZgfm7JA1pAnzVINxStwgf2WLn_Zx5DB6bINRCgaqdMiUI3GXEbS4Q7NM1zOFezjHca28KydGkoKPAAAAAAAAAAAAABPBoNIARo2ygo0MW8C_GKKOSqzsQf8i2o0b8wP1Vw7Cv76-Au2osyrCsniVM41qBmPMhCHh_INGImv1lQgASIBA73C1mw%3D; passport_auth_status=871624f742fbddf391d1bd8a9221a03c%2C2a1e5acc95bb5f13e874adac613ca612; passport_auth_status_ss=871624f742fbddf391d1bd8a9221a03c%2C2a1e5acc95bb5f13e874adac613ca612; sid_guard=dbdd00a6b432b28b1e7dad8b499f605c%7C1747904959%7C5184000%7CMon%2C+21-Jul-2025+09%3A09%3A19+GMT; uid_tt=d09b0142dc3c47527eaeb88bf5ab378b; uid_tt_ss=d09b0142dc3c47527eaeb88bf5ab378b; sid_tt=dbdd00a6b432b28b1e7dad8b499f605c; sessionid=dbdd00a6b432b28b1e7dad8b499f605c; sessionid_ss=dbdd00a6b432b28b1e7dad8b499f605c; sid_ucp_v1=1.0.0-KDA4MmVhZGUzZmUxMDE0YjJlMDM0NjVlOGM2N2JlMWM2ZDBkNTQwY2EKIQiI_uDJy_SNARC_07vBBhjvMSAMMO2prvIFOAJA8QdIBBoCbGYiIGRiZGQwMGE2YjQzMmIyOGIxZTdkYWQ4YjQ5OWY2MDVj; ssid_ucp_v1=1.0.0-KDA4MmVhZGUzZmUxMDE0YjJlMDM0NjVlOGM2N2JlMWM2ZDBkNTQwY2EKIQiI_uDJy_SNARC_07vBBhjvMSAMMO2prvIFOAJA8QdIBBoCbGYiIGRiZGQwMGE2YjQzMmIyOGIxZTdkYWQ4YjQ5OWY2MDVj; login_time=1747904959022; xg_device_score=7.18025253024221; IsDouyinActive=true; live_can_add_dy_2_desktop=%221%22; _bd_ticket_crypt_cookie=cfa5b7451bd9b7d37f4f5921584ec035; __security_mc_1_s_sdk_sign_data_key_web_protect=d7f5aa88-4263-bc5e; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCQ0tqVERCYW1DWVUwamNzU0JKZHk4eXUrVkpRYWpIbDBJcXJuZm1jeExiUEFHbllkUlB1TzNaUjBsZ1F4ZnIvSGN3M3VoZG52clhZeDliM1IyMjRRSkU9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; passport_fe_beating_status=true; odin_tt=d383283b0c45831a391ab549d36a9d2ba73208313726f5039a57443b332a198b80029fbc5545fb7f7bb390d6655d6466b77de10a0e39dd11a57eefd9ee7f2f45""" - +# cookie_string = """ttwid=1%7CAlswAFfbJOHidyVPEXddfGgbBNE_6iRNBz6HDTaozXA%7C1747815204%7Cb870b4ca77b2c009f9590b4e141131073a672c3ccba978dfefb99c9c6128b0bc; x-web-secsdk-uid=3348cdbf-569c-4774-8473-b80937932fe6; _tea_utm_cache_10000007=undefined; __live_version__=%221.1.3.2388%22; has_avx2=null; device_web_cpu_core=28; device_web_memory_size=8; live_use_vvc=%22false%22; hevc_supported=true; csrf_session_id=67de4e04541c2671846bd21690f930a1; fpk1=U2FsdGVkX1+zlxnzV1Dn2KDWd2f1ji2u0F1BTgYhZcmekH91jUXGepiO1FqDrU16fl8t5Y4zAgIIPRl23tohkA==; fpk2=8369da3c75ccd12bc017791df73a85c8; xgplayer_user_id=609143978726; xgplayer_device_id=89685152902; __security_mc_1_s_sdk_crypt_sdk=a2889a4b-4a9d-9d85; bd_ticket_guard_client_web_domain=2; passport_csrf_token=461e8d0a49990110e082d04ab3fbb039; passport_csrf_token_default=461e8d0a49990110e082d04ab3fbb039; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; d_ticket=2a895ea0e5832f92e030ef98d0e4d5faec761; n_mh=U-zSkOHSn3qGUvq5TNKK4MFeK2TmpF6av96C6xKpzk0; is_staff_user=false; SelfTabRedDotControl=%5B%5D; __security_mc_1_s_sdk_cert_key=61483cd4-4421-b001; __security_server_data_status=1; publish_badge_show_info=%220%2C0%2C0%2C1747815907432%22; download_guide=%223%2F20250521%2F0%22; webcast_local_quality=origin; h265ErrorNumNew=-1; SEARCH_RESULT_LIST_TYPE=%22single%22; is_dash_user=1; volume_info=%7B%22volume%22%3A0.6%7D; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAkRqYED3KC9TrV2-VkWp_aTXs9sr_XfFG6HPDMAMCkbc%2F1747843200000%2F0%2F1747816041114%2F0%22; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAkRqYED3KC9TrV2-VkWp_aTXs9sr_XfFG6HPDMAMCkbc%2F1747929600000%2F0%2F1747882350236%2F0%22; WallpaperGuide=%7B%22showTime%22%3A1747882354044%2C%22closeTime%22%3A0%2C%22showCount%22%3A1%2C%22cursor1%22%3A10%2C%22cursor2%22%3A2%7D; home_can_add_dy_2_desktop=%221%22; s_v_web_id=verify_maz4smyj_138edc41_3fe9_f29a_92e2_ec86048a1233; __ac_nonce=0682ee99f0027f761e605; __ac_signature=_02B4Z6wo00f01GB2FOgAAIDD.hK0eXqTmARgVhBAAHA6cd; biz_trace_id=259eff86; sdk_source_info=7e276470716a68645a606960273f276364697660272927676c715a6d6069756077273f276364697660272927666d776a68605a607d71606b766c6a6b5a7666776c7571273f275e5927666d776a686028607d71606b766c6a6b3f2a2a6d6e6e756f606d6d666b6d6260636d67616662636e6060626269756f666d61662a767164716c662a6f762a6c6b756462602b6f76592758272927666a6b766a69605a696c6061273f27636469766027292762696a6764695a7364776c6467696076273f275e5827292771273f2732313532363c31353c323132342778; bit_env=oWBCmDtYAj2HbhkH6zIQEgNv8Ymi4yKZdZ4LZi0wXRix6eYhAe8oZ1HF6J40tNd0YwzGcgHi057EFZJCk2Vn9RLHwxuZ8kKNA1aJoQmVzsx2c-i6EaC38GPvpskIF4eG_q_WbHvUWKSKRYrKfmYN4ZUrxhhzf7tmwWCCyr_T9BGbH-BZjLLRsJM8GJ2XrCrc3EqWGebbzHXNPb5h_qTZfOjTm1_eQEXrX8s99rmL9HjgeYgMCPvXJ6q5VQ0HASHt6EpIFywn2F95lp1viwbWQgo32Ki8n4-Ko41VMwkkkXagTZemWSg-4j5PsYPqDEsFkOkRhmrqylUe0LI5c8wYhdo4vQzMXd4cMyFzx-KBIxqrA0ik4dRosV-5eX2XVCMfHa57VaAu3fvwcwU1Atx5bPLJhGjXN8eu5dBHyZaW4pJ5YTVNHBmnsq8Jvdsxm55DHw0RzQfo_ll909KhHGjWRW8ZUmwqXTJ6aSc1JuUTKDMtNI60E3TqEXeZlhVPAig1QIbO-CwHuvr6Kh_C33bXroIYZAcJugfNOLzmOdRhwrk%3D; gulu_source_res=eyJwX2luIjoiY2U2ZGQ3NDE5YmRhYjA4ZTJhN2VmZDIwODlkMTA3YmJlZjUyZjUyYzYxMjVkMDliYjcyYmE3MGEzYWYxMjU4NCJ9; passport_auth_mix_state=cxn42xqhg7lekwow283jvoymvdco55vh; passport_mfa_token=Cjc8QG9MwQWQ9%2FXZhWf6VlEAxCHHj73fI6CfwtVKEcJ4MniaFg4vaO32TXYZeknITWwrmlfhS19wGkoKPAAAAAAAAAAAAABPBs2z7m6q5G34c6qcWc6j9g6og8f%2FMlah%2FbIscZRc1mModqr7FK4VN5GIghX%2B%2FSpKtBCHh%2FINGPax0WwgAiIBA5CGJ34%3D; passport_assist_user=CkBFl-E3t3kqljYklZgfm7JA1pAnzVINxStwgf2WLn_Zx5DB6bINRCgaqdMiUI3GXEbS4Q7NM1zOFezjHca28KydGkoKPAAAAAAAAAAAAABPBoNIARo2ygo0MW8C_GKKOSqzsQf8i2o0b8wP1Vw7Cv76-Au2osyrCsniVM41qBmPMhCHh_INGImv1lQgASIBA73C1mw%3D; passport_auth_status=871624f742fbddf391d1bd8a9221a03c%2C2a1e5acc95bb5f13e874adac613ca612; passport_auth_status_ss=871624f742fbddf391d1bd8a9221a03c%2C2a1e5acc95bb5f13e874adac613ca612; sid_guard=dbdd00a6b432b28b1e7dad8b499f605c%7C1747904959%7C5184000%7CMon%2C+21-Jul-2025+09%3A09%3A19+GMT; uid_tt=d09b0142dc3c47527eaeb88bf5ab378b; uid_tt_ss=d09b0142dc3c47527eaeb88bf5ab378b; sid_tt=dbdd00a6b432b28b1e7dad8b499f605c; sessionid=dbdd00a6b432b28b1e7dad8b499f605c; sessionid_ss=dbdd00a6b432b28b1e7dad8b499f605c; sid_ucp_v1=1.0.0-KDA4MmVhZGUzZmUxMDE0YjJlMDM0NjVlOGM2N2JlMWM2ZDBkNTQwY2EKIQiI_uDJy_SNARC_07vBBhjvMSAMMO2prvIFOAJA8QdIBBoCbGYiIGRiZGQwMGE2YjQzMmIyOGIxZTdkYWQ4YjQ5OWY2MDVj; ssid_ucp_v1=1.0.0-KDA4MmVhZGUzZmUxMDE0YjJlMDM0NjVlOGM2N2JlMWM2ZDBkNTQwY2EKIQiI_uDJy_SNARC_07vBBhjvMSAMMO2prvIFOAJA8QdIBBoCbGYiIGRiZGQwMGE2YjQzMmIyOGIxZTdkYWQ4YjQ5OWY2MDVj; login_time=1747904959022; xg_device_score=7.18025253024221; IsDouyinActive=true; live_can_add_dy_2_desktop=%221%22; _bd_ticket_crypt_cookie=cfa5b7451bd9b7d37f4f5921584ec035; __security_mc_1_s_sdk_sign_data_key_web_protect=d7f5aa88-4263-bc5e; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCQ0tqVERCYW1DWVUwamNzU0JKZHk4eXUrVkpRYWpIbDBJcXJuZm1jeExiUEFHbllkUlB1TzNaUjBsZ1F4ZnIvSGN3M3VoZG52clhZeDliM1IyMjRRSkU9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; passport_fe_beating_status=true; odin_tt=d383283b0c45831a391ab549d36a9d2ba73208313726f5039a57443b332a198b80029fbc5545fb7f7bb390d6655d6466b77de10a0e39dd11a57eefd9ee7f2f45""" +cookie_string = """bd_ticket_guard_client_web_domain=2; is_staff_user=false; _bd_ticket_crypt_doamin=2; __security_server_data_status=1; store-region=cn-zj; store-region-src=uid; UIFID=63bdc4b4b456901f349a081bfd3a24da10a1c6623f0a2d5eadd83f51c9f4d11253b0ac28d758e82ecc3093e478acabd6c399763b110199f2e8efc022765dab81aab3638377087b273b77e94e2a801bcf8b91f7e9fd32303f513c4e0a66e8bb2f18a6a08d3637aae64c603d8be6398482e56784381261b99d71969994b6b1b8aefc0ac750f3d623e4fb3275954472457bf54644dbd1f36b783f17d61672408ac8; hevc_supported=true; my_rd=2; oc_login_type=LOGIN_PERSON; xgplayer_device_id=10834740412; xgplayer_user_id=946785168724; SelfTabRedDotControl=%5B%5D; live_use_vvc=%22false%22; SEARCH_RESULT_LIST_TYPE=%22single%22; __live_version__=%221.1.3.353%22; passport_mfa_token=CjfSOgCziz95SNSXdwz%2FKDzrOykZrkmbriks9LPAqWAfvMkP2TLrp8H%2By4YUCak26%2BxjI57AV1tzGkoKPAAAAAAAAAAAAABO7jDMKCGbC0k2ZfrdVYnCGU5iW4Gw5C9RF%2F3UnKdzF7MfDEvJ3ACvoC5%2BtlWHhyXG7xCV%2Be8NGPax0WwgAiIBAxWizns%3D; d_ticket=eaa9faa82381997bc3520affccb5d10fcba6e; passport_assist_user=CkDS_S1MamdYRnsK1P3XsQqgcVJvmbgjU4BVfUt7nXsTI49gr1ZxJPMhkj-faCkvWWviq3I0q8Zm0f8VAKJHN_nAGkoKPAAAAAAAAAAAAABO7q1N8Wj_w79M2JJfCNkxtpmUf1rYqI7UEofOE3aPjKjv4EDB8obFUS9xc3UGFyvgkhCU-e8NGImv1lQgASIBAw1moJI%3D; n_mh=flRi2fJl_bs2zlED-0iPQ61xTMnFBRJqEqHJ_EbP7Cw; sid_guard=3d15484b92477d7a7cc5171597caa7d2%7C1745837940%7C5184000%7CFri%2C+27-Jun-2025+10%3A59%3A00+GMT; uid_tt=d21c6ed892414de690cc633855629259; uid_tt_ss=d21c6ed892414de690cc633855629259; sid_tt=3d15484b92477d7a7cc5171597caa7d2; sessionid=3d15484b92477d7a7cc5171597caa7d2; sessionid_ss=3d15484b92477d7a7cc5171597caa7d2; sid_ucp_v1=1.0.0-KGEzMDIwNjljNWUxYzJhNzhmNmMyMGVmN2U2YTFjMmRhNjQxMjBjODcKIAip48DMo80ZEPS-vcAGGNoWIAwwiLOOtQY4B0D0B0gEGgJsZiIgM2QxNTQ4NGI5MjQ3N2Q3YTdjYzUxNzE1OTdjYWE3ZDI; ssid_ucp_v1=1.0.0-KGEzMDIwNjljNWUxYzJhNzhmNmMyMGVmN2U2YTFjMmRhNjQxMjBjODcKIAip48DMo80ZEPS-vcAGGNoWIAwwiLOOtQY4B0D0B0gEGgJsZiIgM2QxNTQ4NGI5MjQ3N2Q3YTdjYzUxNzE1OTdjYWE3ZDI; _bd_ticket_crypt_cookie=35d8b1bc755bc6f85214f4df6e215e8d; __security_mc_1_s_sdk_sign_data_key_web_protect=ff8faa8e-40b0-ab41; passport_csrf_token=43f6a0be13332924cea99029c9b56f5d; passport_csrf_token_default=43f6a0be13332924cea99029c9b56f5d; __security_mc_1_s_sdk_crypt_sdk=a9cd0de1-46d1-a429; __security_mc_1_s_sdk_cert_key=96527b0f-489b-97c7; biz_trace_id=92dcefda; cc_request_t=42514154-927e-4b8d-82a7-2af629fe0fd7; x-web-secsdk-uid=5a8b80fa-4fdd-4f5f-bdbc-edbb7517965e; gfkadpd=2906,33638; _tea_utm_cache_2906=undefined; csrf_session_id=0b174fa7a55c37d94c49cf2381a1c83e; ttwid=1%7CNiXJ2t4qKbhPtXdvLYiQ1Lr6yoga4rpgv5CHgSrmbVE%7C1748429215%7Cbea5f971db384a1c41737532976c2f1c872ee6a2b6297c30671e87a6959acdca; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTmNPRGpiZWJvVFNyZkVNWTZWcHI3MjBvMHpkRU9ES1BrLy9HL2U4cXRGa1FZUk9DS3lldElhVUtRejg5OTJsKzZIYVowQXR4T05aMW1xT0dvNmZNOW89IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; passport_fe_beating_status=false; odin_tt=98edf1d3032a48ffca169b31f8227a28bc0dd3bc57ca993bbb6d376fce3c05dde704f7ec5dbb74680c6f06fa9ff56164a96be98edaae59857c93b5c05c76a3d0""" # 解析 cookies cookies = parse_cookies(cookie_string) @@ -414,13 +414,13 @@ async def get_live_status_by_web_page(page: Page, webcast_id: str): live_status = None logger.debug(f"Getting live status for webcast_id: {webcast_id}") try: - await page.wait_for_selector("[class='pip-anchor']", timeout=3 * 000) + await page.wait_for_selector("[class='pip-anchor']", timeout=3 * 1000) await page.wait_for_function( """() => { const element = document.querySelector('[class="pip-anchor"]'); return element && element.innerText !== ""; }""", - timeout=3 * 000 + timeout=3 * 1000 ) live_status_js = """document.querySelector('[class="pip-anchor"]')?.innerText || ''""" live_status_text: str = await page.evaluate(live_status_js) @@ -442,7 +442,7 @@ def submit_job(data: LiveStreamProductWatchRequest): ########################################rpa_image start###################################################### with rpa_image.imports(): - @app.function(timeout=8 * 60 * 60, volumes={"/data": rpa_vol}) + @app.function(timeout=8 * 60 * 60, volumes={"/data": rpa_vol}, cloud="gcp", region="ap") async def rpa_run(data: LiveStreamProductWatchRequest) -> dict: """ Records product sessions for all products in a Douyin live session. @@ -462,7 +462,7 @@ with rpa_image.imports(): result = LiveStreamResult(live_id=webcast_id, live_stream_url=live_url) # createLivePull2Push - with httpx.Client() as client: + with httpx.Client(timeout=120) as client: res = client.post(url="https://bowong-gateway.bowong.cc/api/t1/live/createLivePull2Push", json={ "name": data.live_stream_name, "liveId": data.live_id @@ -476,35 +476,33 @@ with rpa_image.imports(): if status_code == 200 and data_res['code'] == 0: result.ext_data = data_res['data'] else: - result.msg="createLivePull2Push 推流失败" + result.msg = "createLivePull2Push 推流失败" return data_res async with async_playwright() as p: browser: Browser = await p.chromium.launch(headless=True, channel='msedge') # browser = await p.chromium.launch(channel="msedge") - result = await goto_live(browser, data, result, webcast_id) - # Save result to JSON file with ULID naming,TODO 后续s3上传 await save_result_to_json(result, data) return result.dict() # Return as dict for JSON compatibility - # @retry(stop=stop_after_attempt(3), wait=wait_fixed(5)) + # @retry(stop=stop_after_attempt(10), wait=wait_fixed(5)) async def goto_live(browser, data: LiveStreamProductWatchRequest, result: LiveStreamResult, webcast_id): context = await browser.new_context() + await context.add_cookies(cookies) logger.info("Loaded cookies") page: Page = await context.new_page() url = f"https://live.douyin.com/{webcast_id}?open_promotion_list=1" logger.info(f"Navigating to {url}") - await page.goto(url,wait_until="domcontentloaded", timeout=1800 * 1000) - logger.info(f"Navigating to end {url}") - await page.wait_for_load_state("networkidle", timeout=1800 * 1000) + await page.goto(url, wait_until="domcontentloaded") logger.info(f"Navigating to end {url}") + await wait_for_load_state_foo(page, url) result.title = await page.title() logger.info(f"------Retrieved title: {result.title}") @@ -524,13 +522,20 @@ with rpa_image.imports(): return result + @retry(stop=stop_after_attempt(50), wait=wait_fixed(5)) + async def wait_for_load_state_foo(page, url): + logger.info(f"networkidle to start {url}") + await page.wait_for_load_state("networkidle") + logger.info(f"networkidle to end {url}") + + @app.local_entrypoint() async def local_run(): logger.info("Starting local RPA test") # 312898731614 # webcast_ids = ["36861064178"] # webcast_ids = ["36861064178"] - webcast_id = "629972366172" + webcast_id = "333555252930" data: LiveStreamProductWatchRequest = LiveStreamProductWatchRequest(live_id=webcast_id) # TODO other info @@ -556,10 +561,10 @@ with rpa_image.imports(): ########################################rpa_image end###################################################### if __name__ == '__main__': - with httpx.Client() as client: + with httpx.Client(timeout=120) as client: res = client.post(url="https://bowong-gateway.bowong.cc/api/t1/live/createLivePull2Push", json={ - "name": "62997236617212", - "liveId": "629972366172" + "name": "62997236617212111", + "liveId": "333555252930" }, headers={ "Authentication": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWQiOiI5ZjIwZDM0MC0xY2U0LTQ5MzAtYTA5NC0yZjM2ODYzNGRiYzciLCJ1aWQiOiI1ZTQzYTc1ZC1hN2M3LTQ1NjQtOTI0OS01NWEyMDIxZDk0YzUiLCJ1c24iOiJ1c2VyQGJvd29uZ2FpLmNvbSIsImV4cCI6MTc0ODQxNjA1Nn0.IWMxl47oSFJyNYQV6M511-rU8GDIGh8r9H5Yt8LShGw"}) status_code = res.raise_for_status().status_code