Google login captchas solving
Closed this issue · 3 comments
Hey and first of all good job on trying to solve those captcha problems.
I tried both recaptchav2 and recaptchav3 for the google login flow and none worked.
Any ideas how to solve this one?
Thank you!
The api request looks like this:
https://accounts.google.com/Captcha?v=2&ctoken=AAWk9lQmxc2mqQGWcUrhHHacb8fogK0R6wGYLty5tKC0srS_mLrKbxQCIW6WykE9gU7k49WRaU4XC1R2X2MuYXVler7crvY0C5BKSs-tG3pMLDmm8ebjRTMmG2aoSSqmzZ6ANjjqBfg9HRl_FG8h9E8HAmcjoeH-IT8FGqHixezooAjx83PSBTCzhgFM-2o35xdTuMc1qGUB&kind=audio
Hello, this CAPTCHA is not a reCAPTCHA, which is what this library is for. If you need to be signed into a Google account to perform certain actions, I would suggest loading the Google account session cookies into the Playwright browser.
Here is an example of how you could do this:
from typing import Any, Dict, List
import browser_cookie3
from playwright.sync_api import sync_playwright
def get_browser_cookies() -> List[Dict[str, Any]]:
# Sign into Google on a browser of your choice and extract the cookies from it using browser_cookie3.
# Here I am using Brave.
cookie_jar = browser_cookie3.brave()
cookies = [
{
"name": cookie.name,
"value": cookie.value,
"domain": cookie.domain,
"path": cookie.path,
"secure": bool(cookie.secure),
}
for cookie in cookie_jar
]
return cookies
def main() -> None:
with sync_playwright() as playwright:
browser = playwright.firefox.launch(headless=False)
context = browser.new_context()
context.add_cookies(get_browser_cookies())
page = context.new_page()
page.goto("https://mail.google.com/mail", wait_until="networkidle")
if __name__ == "__main__":
main()
Wow, thanks for the suggestion, works flawlessly on my local machine
Not sure if it will on work on the CI env where I can't do this step: (Sign into Google on a browser of your choice and extract the cookies from it using browser_cookie3
). Maybe if I run get_browser_cookies on a machine where I'm already logged in and export the cookies JSON to the CI env
Yep, that would work perfectly fine.