This commit is contained in:
zjf 2025-05-28 20:30:37 +08:00
parent e3b89249f6
commit 4001249d53
1 changed files with 29 additions and 3 deletions

View File

@ -6,10 +6,12 @@ import time
from pathlib import Path from pathlib import Path
from typing import List, Optional from typing import List, Optional
import httpx import httpx
from ulid import ULID
import modal import modal
from loguru import logger from loguru import logger
from playwright.async_api import async_playwright, Browser, Page from playwright.async_api import async_playwright, Browser, Page
from playwright.sync_api import sync_playwright
from tenacity import retry, stop_after_attempt, wait_fixed from tenacity import retry, stop_after_attempt, wait_fixed
from functools import partial from functools import partial
@ -24,7 +26,7 @@ rpa_image = (modal.Image.debian_slim(python_version="3.11")
"mkdir /root/browsers", "mkdir /root/browsers",
"playwright install-deps", "playwright install-deps",
"playwright install chromium", "playwright install chromium",
"playwright install msedge", "playwright install --force msedge",
]) ])
.add_local_python_source('cluster') .add_local_python_source('cluster')
.add_local_python_source('BowongModalFunctions') .add_local_python_source('BowongModalFunctions')
@ -528,6 +530,8 @@ with rpa_image.imports():
await page.wait_for_load_state("networkidle", timeout=5 * 1000) await page.wait_for_load_state("networkidle", timeout=5 * 1000)
logger.info(f"networkidle to end {url}") logger.info(f"networkidle to end {url}")
pass
@app.local_entrypoint() @app.local_entrypoint()
async def local_run(): async def local_run():
@ -537,7 +541,7 @@ with rpa_image.imports():
# webcast_ids = ["36861064178"] # webcast_ids = ["36861064178"]
webcast_id = "333555252930" webcast_id = "333555252930"
data: LiveStreamProductWatchRequest = LiveStreamProductWatchRequest(live_id=webcast_id) data: LiveStreamProductWatchRequest = LiveStreamProductWatchRequest(live_id=webcast_id,live_stream_name=str(ULID()))
# TODO other info # TODO other info
call_id = submit_job(data) call_id = submit_job(data)
print("------call_id:", call_id) print("------call_id:", call_id)
@ -560,7 +564,11 @@ with rpa_image.imports():
# logger.info(f"title = {title}") # logger.info(f"title = {title}")
########################################rpa_image end###################################################### ########################################rpa_image end######################################################
if __name__ == '__main__':
def local_main_test():
global client, status_code
with httpx.Client(timeout=120) as client: with httpx.Client(timeout=120) as client:
res = client.post(url="https://bowong-gateway.bowong.cc/api/t1/live/createLivePull2Push", json={ res = client.post(url="https://bowong-gateway.bowong.cc/api/t1/live/createLivePull2Push", json={
"name": "62997236617212111", "name": "62997236617212111",
@ -570,3 +578,21 @@ if __name__ == '__main__':
status_code = res.raise_for_status().status_code status_code = res.raise_for_status().status_code
print(status_code) print(status_code)
print(res.json()) print(res.json())
def foo(webcast_id):
with sync_playwright() as p:
url = f"https://live.douyin.com/{webcast_id}?open_promotion_list=1"
# Channel can be "chrome", "msedge", "chrome-beta", "msedge-beta" or "msedge-dev".
browser = p.chromium.launch(channel="msedge")
page = browser.new_page()
page.goto(url)
print(page.title())
browser.close()
if __name__ == '__main__':
# local_main_test()
foo("333555252930")
pass