判断是否被检测自动化增加文本条件, 登录, 获取账号信息, 修改账号信息, 检查账号cookies为无头模式运行. 获取任务更改为2个工作线程防止队列任务过多

This commit is contained in:
work
2025-07-08 16:55:49 +08:00
parent 0eed2ca1dc
commit 818c01b1af
2 changed files with 10 additions and 9 deletions

View File

@@ -79,15 +79,15 @@ def main():
# 存储正在运行的任务 # 存储正在运行的任务
running_tasks = set() running_tasks = set()
# 创建线程池执行任务(3个工作线程) # 创建线程池执行任务(2个工作线程)
with ThreadPoolExecutor(max_workers=3) as executor: with ThreadPoolExecutor(max_workers=2) as executor:
while True: while True:
try: try:
# 清理已完成的任务 # 清理已完成的任务
running_tasks = {task for task in running_tasks if not task.done()} running_tasks = {task for task in running_tasks if not task.done()}
# 如果队列未满,尝试获取新任务 # 如果队列未满,尝试获取新任务
if len(running_tasks) < 3: if len(running_tasks) < 2:
task = get_task() task = get_task()
if task: if task:
logger.info(f"收到任务: {task['id']} - {task['task_type']}") logger.info(f"收到任务: {task['id']} - {task['task_type']}")
@@ -102,6 +102,7 @@ def main():
time.sleep(10) time.sleep(10)
else: else:
# 达到最大并发数时等待 # 达到最大并发数时等待
logger.info("等待任务完成")
time.sleep(1) time.sleep(1)
except Exception as e: except Exception as e:

View File

@@ -835,7 +835,7 @@ def check_account_status(page, cookies):
raise AuthException('该账户登录状态失效', 'invalid') raise AuthException('该账户登录状态失效', 'invalid')
# 判断是否被检测到自动化,这种情况只需要点击按钮就可以继续 # 判断是否被检测到自动化,这种情况只需要点击按钮就可以继续
if page.query_selector('//span[text()="We suspect automated behavior on your account"]') is not None: if page.query_selector('//span[text()="We suspect automated behaviour on your account" or text()="We suspect automated behavior on your account"]') is not None:
page.click('//span[text()="Dismiss"]') page.click('//span[text()="Dismiss"]')
time.sleep(3) time.sleep(3)
retry_goto(page, 'https://www.facebook.com') retry_goto(page, 'https://www.facebook.com')
@@ -1055,7 +1055,7 @@ def playwright_get_user_profile(cookies, username=None):
with sync_playwright() as playwright: with sync_playwright() as playwright:
update_windows_distinguish() update_windows_distinguish()
browser = playwright.chromium.launch( browser = playwright.chromium.launch(
headless=False, args=['--start-maximized'], executable_path=path headless=True, args=['--start-maximized'], executable_path=path
) )
context = browser.new_context(no_viewport=True) context = browser.new_context(no_viewport=True)
context.add_cookies(parse_cookies(cookies)) context.add_cookies(parse_cookies(cookies))
@@ -1099,11 +1099,11 @@ def playwright_set_user_profile(cookies, username=None, first_name=None, last_na
return return
path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe') path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe')
with lock: with login_semaphore:
with sync_playwright() as playwright: with sync_playwright() as playwright:
update_windows_distinguish() update_windows_distinguish()
browser = playwright.chromium.launch( browser = playwright.chromium.launch(
headless=False, args=['--start-maximized'], executable_path=path headless=True, args=['--start-maximized'], executable_path=path
) )
context = browser.new_context(no_viewport=True) context = browser.new_context(no_viewport=True)
context.add_cookies(parse_cookies(cookies)) context.add_cookies(parse_cookies(cookies))
@@ -1163,7 +1163,7 @@ def playwright_check_account_cookies(cookies):
with sync_playwright() as playwright: with sync_playwright() as playwright:
update_windows_distinguish() update_windows_distinguish()
browser = playwright.chromium.launch( browser = playwright.chromium.launch(
headless=False, args=['--start-maximized'], executable_path=path headless=True, args=['--start-maximized'], executable_path=path
) )
context = browser.new_context(no_viewport=True) context = browser.new_context(no_viewport=True)
context.add_cookies(parse_cookies(cookies)) context.add_cookies(parse_cookies(cookies))
@@ -1351,7 +1351,7 @@ def playwright_m_login(username, password, code_2fa=None):
with sync_playwright() as playwright: with sync_playwright() as playwright:
update_windows_distinguish() update_windows_distinguish()
browser = playwright.chromium.launch( browser = playwright.chromium.launch(
headless=False, args=['--start-maximized'], executable_path=path headless=True, args=['--start-maximized'], executable_path=path
) )
# random_user_agent = UserAgent().getBrowser(["Chrome Mobile iOS"]).get("useragent") # random_user_agent = UserAgent().getBrowser(["Chrome Mobile iOS"]).get("useragent")
random_user_agent = "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36" random_user_agent = "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36"