파이썬 웹크롤링 질문이에요ㅠㅠ 도와주세요

조회수 857회

파이썬으로 github.com에 로그인 하는 코드인데요 왜 안되는지 잘 모르곘습니다.

user_id와 user_pw에는 제 아이디와 패스워드를 넣었습니다

import mechanicalsoup
from pprint import pprint
from requests.utils import dict_from_cookiejar

browser=mechanicalsoup.Browser()
user_id='id'
user_pw='password'



login_page=browser.get("https://github.com/login")


login_form=login_page.soup.select("#login")[0].select("form")[0]


login_form.select("#login_field")[0]['value']=user_id
login_form.select("#password")[0]['value']=user_pw


page2=browser.submit(login_form, login_page.url)


messages = page2.soup.select('div.dropdown-header.header-nav-current-user.css-truncate')[0]
if messages:
    print(messages.text.strip())

cookies=dict_from_cookiejar(page2.cookies)
pprint(cookies)

이렇게 실행하면요

Traceback (most recent call last): File "C:\python3_login_github.py", line 24, in messages = page2.soup.select('div.dropdown-header.header-nav-current-user.css-truncate')[0] IndexError: list index out of range

이 오류가 뜹니다 제가 이쪽 공부중이라서 아직 구체적으로 질문은 못드리겠어요 죄송해요

이게 책에 있는 소스코드 그대로 쓴건데요 왜 안되는지 모르겠네요 사이트가 약간 변경된걸까요?

그렇다고 저자가 피드백해주는 곳도 없어서 이곳에 적어봅니다

도와주시면 정말 감사하곘습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • div.dropdown-header.header-nav-current-user.css-truncate < 어떤정보인가요? 뭐 정보가 있어야 도움을 드리겠지요. 정영훈 2019.5.24 08:13

1 답변

  • page2.soup.select('div.dropdown-header.header-nav-current-user.css-truncate')의 결과가 빈리스트([])이기 때문에 [0]으로 인덱싱하면 리스트 인덱스 범위를 벗어났다고 오류가 나오는 것으로 보입니다. 따라서 해당 페이지의 태그 코드를 다시 분석해보셔야겠습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)