인프런 커뮤니티 질문&답변

Snake R.black님의 프로필 이미지

작성한 질문수

현존 최강 크롤링 기술: Scrapy와 Selenium 정복

실전 크롤링: 브라우저를 제어해서 다양한 데이터 가져오기

셀레늄으로 네이버 로그인 불가능 한가요?

작성

·

691

0

ㄴ이렇게 코드를 작성해서 네이버 로그인 해보려 했더니 안되던데..  방법이 있나요? ^^;

 

그리고 셀레늄으로 카페 매일 간단한 인사말 같은거 자동으로 남기는 것도 가능한가요? 

답변 3

1

안녕하세요. 네이버는 크롤링을 가장 싫어해요. 그래서 셀레니움으로 할 때에도 이와 같이 다양한 방법으로 막고 있습니다. 

물론 뚤을 수도 있지만, 수시로 웹페이지를 바꿔서 그 때마다 또 막은 부분을 뚤는 것이 시간이 매우 많이 걸립니다.

카페와 로그인 기능은 다음 네이버에서 공식적으로 제공하는 API 를 사용하는 것이 가장 좋습니다. 다만 기능이 제한적이고, 카페의 경우에는 글쓰기시 이미지등이 들어가면, HTML이 적용이 안된다든지 하는 버그가 2017년도 부터 있어왔는데, 아직도 수정을 안한 것 같아요. 네이버는 가급적 접근 안하심을 추천드립니다. 정신건강에 정말 안좋더라고요.

https://developers.naver.com/docs/cafe/api/

0

id_field = driver.find_element_by_name('id')

id_field.clear()

id_field.send_keys('아이디아이디')

id_field.send_keys(Keys.RETURN)  -------> 이 줄을 삭제해보세요.

현재 코드는 id칸을 선택하고, 혹시 입력돼 있는 내용이 있으면 지우고, 아이디를 입력한 후, 엔터를 누르는 코드입니다.

문제는 비밀번호를 누르기 전에 아이디만 입력하고 엔터를 누른다는 것입니다.

아시다시피 평소에 네이버 로그인할 때 아이디만 입력하고 로그인 버튼을 누르면 로그인이 되지 않고 비밀번호를 잘못 입력한 것으로 인식될 수 있습니다. 이를 반복하면 기계로 의심해서 자동입력 방지 문자를 입력하는 페이지로 넘어가게 되죠.

아마도 기존 코드를 가지고 왜 되지 않는지 몇 번 테스트하셨던 것 같습니다. 네이버에 수동으로 로그인하셨다가 로그아웃하신 후 수정된 코드로 시도해보세요.

0

Snake R.black님의 프로필 이미지
Snake R.black
질문자

그렇군요~ 역시 네이버네요...ㅎㅎ  답변 감사합니다 ^^