diff --git a/main.py b/main.py index f60669b..0bcb594 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ TASK_TYPE = { 'comment': playwright_comment, 'like': playwright_like, 'post': playwright_post, - 'login_account': playwright_login + 'login_account': playwright_m_login } HOST = "http://118.193.40.152:8002" diff --git a/spider/task.py b/spider/task.py index 0638e3b..c3d9995 100644 --- a/spider/task.py +++ b/spider/task.py @@ -1321,6 +1321,60 @@ def playwright_login(username, password, code_2fa=None): return {'cookies': json.dumps(c)} +def playwright_m_login(username, password, code_2fa=None): + logger.info(f"登录账号{username}") + # 检查是否冻结 + check_freeze_account(username) + + path = os.path.join(BASE_PATH, 'chrome', '130-0008', 'chrome.exe') + with lock: + with sync_playwright() as playwright: + update_windows_distinguish() + browser = playwright.chromium.launch( + headless=False, args=['--start-maximized'], executable_path=path + ) + # 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" + logger.info(f"使用ua={random_user_agent}") + context = browser.new_context(no_viewport=True, user_agent=random_user_agent) + # 设置语言为英文 + context.add_cookies([ + { + "name": "locale", + "value": "en_US", + "domain": ".facebook.com", + "path": "/", + "expires": -1, + "httpOnly": True, + "secure": False, + }, + ]) + page = context.new_page() + url = 'https://m.facebook.com' + retry_goto(page, url) + page.locator('//input[@id="m_login_email"]').type(username, delay=30) + time.sleep(random.randint(1, 3)) + page.locator('//input[@id="m_login_password"]').type(password, delay=30) + time.sleep(random.randint(1, 3)) + page.click('//div[@aria-label="Log in"]') + page.wait_for_load_state() + time.sleep(random.randint(3, 5)) + + success_login_selector = '//span[text()="Check your notifications on another device"]' + failed_login_selector = '//div[@data-bloks-name="bk.components.dialog.Dialog"]/div[@aria-label="Wrong Credentials"]/div[1]' + # 等成功或失败两个选择的其中一个 + page.wait_for_selector(f'{success_login_selector} | {failed_login_selector}', timeout=60000) + + # 判断是否失败 + failed_login = page.query_selector(failed_login_selector) + if failed_login: + # 登录失败, 返回失败信息 + raise OperationFailed(failed_login.text_content()) + + logger.info(f"用户名:{username} 账号密码正确") + raise OperationFailed("终止任务") + + if __name__ == '__main__': # cookies = 'sb=mC6pxQuLvNLPTNpF-b9Tk8tK;c_user=61570961343759;xs=18:fBZ4XJkFA69uNg:2:1734940655:-1:-1;fr=0JjwzD0HEedbQSHGt.AWUHNQcfxnkbZ3j5rVd1NgTTGhA.BnaRfv..AAA.0.0.BnaRfv.AWWF3uukqmQ;datr=7xdpZzxiItbht8A5aCDBAhQU' # cookies = {"c_user":"61565823476070","datr":"q13hZowje6bbViFxECQpYyp8","fr":"01C6Lt4VArm5hELvx.AWXg75HOo-QNJgbiDl8qFtw_5lc.Bm4V2r..AAA.0.0.Bm4V25.AWWHzUeMTuI","m_pixel_ratio":"1.875","sb":"q13hZgJARsRIDmNJG8xUauAe","wd":"384x686","xs":"50%3A8luhgQ-Ea0vnhg%3A2%3A1726045627%3A-1%3A-1"} @@ -1348,14 +1402,15 @@ if __name__ == '__main__': # # image_key='rg.jpg' # ) # cookies = '{"c_user":"61565405263653","datr":"-YDhZoLWu5zbUIw5cOB2In9s","fr":"0ZmsqLWbmV0Onlspt.AWW1JRfVxQAF-jl0oGY7lBQLYq4.Bm4YD5..AAA.0.0.Bm4YED.AWVf1ae03r4","m_page_voice":"61565405263653","m_pixel_ratio":"2.625","sb":"-YDhZs8LozUoyLe1gj2MCUwW","wd":"412x759","xs":"21%3A8Gt3CwtjVWJUhQ%3A2%3A1726054660%3A-1%3A-1"}' - cookies = '{"datr": "mm0taNtaPfOxWhpxdzpkVjV0", "sb": "mm0taFuFnO_L1FpzkKDiA4lw", "wd": "1920x953", "locale": "en_US", "c_user": "61575901481649", "fr": "0c0y2KyMv8lRJ6NNq.AWe7DLt-TSkoOyn3DhRjhA4ByOITAhfSwaiIw4eQE5ilq4Q4KAY.BoLW2a..AAA.0.0.BoLW3M.AWfHVOhZIAGgDh_3BvPFPi8-YhE", "xs": "29%3ASM0qc4U4Ile_MA%3A2%3A1747807693%3A-1%3A-1", "presence": "C%7B%22t3%22%3A%5B%5D%2C%22utc3%22%3A1747807698911%2C%22v%22%3A1%7D"}' - # print(playwright_check_account_cookies(cookies)) - # 永久链接的帖子点赞 - # print(playwright_like(cookies, "https://www.facebook.com/groups/1070754870427928/permalink/1873461830157224/")) - - # 视频链接的帖子点赞 - print(playwright_like(cookies, "https://www.facebook.com/watch/?v=693587939886449")) - - cookies = playwright_login('61575975148121', 'Mu1711rstu1999', 'JNCCTXB34EP5ME6RU6RND6SHBQ6KATAR') - # print(cookies) - pass + # cookies = '{"datr": "mm0taNtaPfOxWhpxdzpkVjV0", "sb": "mm0taFuFnO_L1FpzkKDiA4lw", "wd": "1920x953", "locale": "en_US", "c_user": "61575901481649", "fr": "0c0y2KyMv8lRJ6NNq.AWe7DLt-TSkoOyn3DhRjhA4ByOITAhfSwaiIw4eQE5ilq4Q4KAY.BoLW2a..AAA.0.0.BoLW3M.AWfHVOhZIAGgDh_3BvPFPi8-YhE", "xs": "29%3ASM0qc4U4Ile_MA%3A2%3A1747807693%3A-1%3A-1", "presence": "C%7B%22t3%22%3A%5B%5D%2C%22utc3%22%3A1747807698911%2C%22v%22%3A1%7D"}' + # # print(playwright_check_account_cookies(cookies)) + # # 永久链接的帖子点赞 + # # print(playwright_like(cookies, "https://www.facebook.com/groups/1070754870427928/permalink/1873461830157224/")) + # + # # 视频链接的帖子点赞 + # print(playwright_like(cookies, "https://www.facebook.com/watch/?v=693587939886449")) + # + # cookies = playwright_login('61575975148121', 'Mu1711rstu1999', 'JNCCTXB34EP5ME6RU6RND6SHBQ6KATAR') + # # print(cookies) + # pass + cookies = playwright_m_login('61575975359852', 'siam05', 'IQDJG46PAIA4KENZRNPTSDO2BKGPQ2BS')