이전에는 C# 셀레니움을 이용하여 구글 로그인이 가능했었다.
그러나 현재 구글에 로그인을 하려고 하다보면, 자동화툴로 접근하여 로그인을 허용하지 않고 있다.
깃허브에서도 올라온 구글 로그인이 안되는 문제에 대한 의견들.
https://gist.github.com/ikegami-yukino/51b247080976cb41fe93
Automatically Google login by selenium
Automatically Google login by selenium. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
자동화툴로 진정 구글 로그인을 할수는 없을까?
글들을 보던중 흥미로운 내용의 유튜브 영상이 공유되었다.
https://www.youtube.com/watch?v=HkgDRRWrZKg&feature=youtu.be
해당 영상을 보면, stack overflow사이트를 통해 구글인증을 한 후 유튜브 사이트로 가게되면 구글에 정상적으로 로그인 되는것을 발견!
var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true; //크롬 콘솔창 숨기기
var options = new ChromeOptions();
using (IWebDriver driver = new ChromeDriver(driverService, options))
{
string id = "구글ID";
string pw = "구글PW";
driver.Url = "https://stackoverflow.com/users/login?ssrc=head";
var googleBtn = driver.FindElement(By.ClassName("s-btn__google"));
googleBtn.Click();
Thread.Sleep(2000);
var emailTag = driver.FindElement(By.Name("identifier"));
emailTag.SendKeys(id);
var nextBtn = driver.FindElement(By.Id("identifierNext"));
nextBtn.Click();
Thread.Sleep(5000);
var passwordTag = driver.FindElement(By.Name("password"));
passwordTag.SendKeys(pw);
//암호 입력 버튼
var passNextBtn = driver.FindElement(By.Id("passwordNext"));
passNextBtn.Click();
Thread.Sleep(5000);
driver.Url = "https://www.google.co.kr/;
}
위와 같이 스택오버플로우 사이트에서 구글인증 후, 구글사이트로 리다이렉트 하면 정상적으로 구글에 로그인이 가능하다!
이 방법이 또 막힐지 모르겠지만, 현재까지는 이상없이 로그인이 가능하다.
단, 프로그램을 하면서 기계적이고 반복적으로 로그인 할 경우, 캡챠가 생성될 수 있으니 너무 빈번한 로그인을 피하는게 좋다.
혹시나 로그인이 안될경우, 계정의 보안을 낮추어 해보도록 한다!
'프로그래밍 > C#' 카테고리의 다른 글
C#으로 크롤링 하기 - 다음사이트 자동로그인 기능 (1) | 2019.07.24 |
---|---|
C# SqLite 사용하기 - 3편 (0) | 2019.06.26 |
C# SQLite 사용하기 - 2편 (0) | 2019.06.23 |
C# SQLite 사용하기 - 1편 (0) | 2019.06.20 |
프로그램 설계하기 좋은 Tool! PowerMockup을 소개합니다. (0) | 2017.05.29 |