셀레니움 클릭하기

조회수 524회

제가 대한민국 인구 변화 데이터를 확인하고 싶어서 https://jumin.mois.go.kr/ 의 사이트에서 셀레니움을 통해 크롤링을 하려고 합니다. 사이트를 확인해 보시면 알 수 있듯이, 이 때 조건을 어느 정도 지정할 수 있는데요.

설정 조건 중 셀렉트 박스는 잘 선택되는데 옆에 월간/연간 버튼을 클릭할 수가 없네요. 왜 그런지 이유를 모르겠습니다. 프린트를 해 보면 엘레멘트 자체는 가져왔는데, 클릭은 안되다니..

코드는 깃허브에 올려놓았습니다. https://github.com/daho-jung/pythoncodes/blob/main/0428/dosele.ipynb

제가 어떤걸 놓치고 있는건지 알려주시면 감사하겠습니다

  • //*[@id="searchYearMonth"]로 html을 탐색해보면 월간/연간 2개 전부 해당되는 패스인데, find 명령을 수행하게 되면 먼저 탐색되는 월간을 클릭하게 되기 때문에 변화가 없는 것으로 보이는 것 같습니다. 초보자 2021.4.28 11:23
  • 아 그렇네요! 보통 id를 쓰면 고유한 id를 주는줄 알고 있어서 당연히 하나만 있을 줄 알았습니다 ㅠㅠ 정다호 2021.4.28 11:42

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    '검색'을 하고 싶으신 거잖아요? 그러면 그냥 폼 전송을 해보시겠어요?

    POST https://jumin.mois.go.kr/statMonth.do
    
    sltOrgType=1&sltOrgLvl1=A&sltOrgLvl2=A&sltUndefType=&nowYear=2021&searchYearMonth=month&searchYearStart=2021&searchMonthStart=03&searchYearEnd=2021&searchMonthEnd=03&gender=gender&genderPer=genderPer&generation=generation&sltOrderType=1&sltOrderValue=ASC
    

    리퍼러라든가 origin이라든가 user-agent 같은걸 스푸핑해야 할 여지는 있겠지만 기본적으로 이렇게 하면 무슨 select를 "클릭"할 필요 없이 원하는 응답을 얻을수 있을듯 한데요.

    PS. 그나저나 연도별 인구 수를 알고 싶으신 거잖아요? 그렇다면 국가통계포털은 오픈 API를 제공하고 있으니 연도별 인구 수 데이터를 여기서 구할 수 있나 확인해 보세요.

    • 클릭 없이 폼 전송으로 할 수도 있었네요. 감사합니다. 정다호 2021.4.28 11:23

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

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

(ಠ_ಠ)
(ಠ‿ಠ)