[제로베이스] CH4. EDA - selenium 기초

정해성·2023년 7월 10일
0

제로베이스

목록 보기
33/36
post-thumbnail

🚩 selenium 이란

🔎
Selenium은 크롤링 모듈로 웹 상에서 정적인 페이지를 탐색하는데 사용하던 beautifulsoup같은 패키지가 하지 못하는 동적인 크롤링을 지원한다. 동적인 크롤링이란 url상에는 아무런 변화없이 동작하는 웹 페이지에 대한 크롤링을 의미한다.

프로그래밍으로 브라우저 동작을 제어해서 마치 사람이 이용하는 것 같이 웹페이지를 요청하고 응답을 받아올 수 있다.

BeautifulSoup :

  • 정적으로 데이터들 처리 ( 웹페이지에 접속 시 얻은 데이터만 처리한다 등) 그래서 자바스크립트가 들어있는 웹 페이지를 크롤링하게 되면 그 동작들을 제대로 캐치하지 못하고 경우가 생긴다. 그 외에도 웹 사이트에 마우스/키보드 입력이 있는 경우에도 제한이 생긴다.

selenium :

  • html 값들을 처리함에 있어 동적으로 변하는 웹 페이지의 데이터들까지 설정하여 크롤링할 수 있다.
    실제 사용자들처럼 마우스클릭, 키보드입력 등의 입력이 가능해져서 url을 통해서만 다른 페이지 접근하는게 아니라 버튼을 누르고 값을 입력하게 만들어서 값을 추출한다.


    출처 : https://jennana.tistory.com/162

🚩 selenium 기초

실습 주소는 제로베이스에서 제공해준 https://pinkwink.kr를 활용했습니다.

🔎 기본 작동 방법

  • 먼저 크롬드라이버를 다운받고 selenium에서 webdriver로 사용한다고 설정해줘야한다.

  • 이렇게 켜진 크롬창은 소프트웨어에 의해 제어되고 있다고 표시된다.

  • 다음과 같은 기본 문법들이 있다.

🔎 클릭하기

  • 클릭을 위해서는 태그 정보가 필요하다.
  • 개발자도구 => 셀렉트 엘리먼트 => 오른쪽에 태그 항목 우측클릭 => copy selecor or copy Xpath

🔎 스크롤하기

🔎 검색어 입력하기

진행 이미지를 넣기에 애매해서 넣지 못했습니다. ㅠ

순서
1. 네이버 검색창의 태그 정보 가져오기
2. 태그를 드라이버로 실행시켜 키워드 변수에 담는다.
3. 키워드 변수에 .send_keys("원하는내용")를 추가하면 검색어가 검색창에 입력된다.
4. 검색 버튼의 태그정보를 가져온다.
5. 검색 버튼 태그를 드라이버로 실행해 search 변수에 담는다.
6. search.click() 하면 클릭하여 검색이 실행된다.

🔎 검색어 입력하기 2

진행 이미지를 넣기에 애매해서 넣지 못했습니다. ㅠ

https://pinkwink.kr

위 사이트는 검색방법이 다르다.

검색방법 :
1. 돋보기 버튼클릭 -> 검색창이 나온다.
2. 검색창에 검색어를 입력한다.
3. 돋보기 버튼을 누른다. -> 검색 실행

실제로 개발자도구에 들어가서 태그항목을 보면 돋보기 버튼을 눌르면 태그속성이 바뀌는 것을 볼수 있다. 이처럼 동적인 작동을 할 때 동적 페이지라 하며 이럴땐 다른 방법을 써야한다.

  • 코드설명
  1. 액션체인스 모듈을 추가한다.
  2. 웹드라이버 엔진을 액션체인스 객체에 넣어 action 변수를 만든다.
  3. 돋보기 (동적페이지)의 태그속성을 불러와 search 변수에 넣는다.
  4. action.click(search)
    action.perform()
    을 적어주면 돋보기버튼을 눌러서 검색창을 띄워준다.

이후 위의 검색어 입력하기 1 내용을 반복하면 된다.(변수명은 다르게 사용 바람)

  1. 검색창의 태그 정보 가져오기
  2. 태그를 드라이버로 실행시켜 키워드 변수에 담는다.
  3. 키워드 변수에 .send_keys("원하는내용")를 추가하면 검색어가 검색창에 입력된다.
  4. 검색 버튼의 태그정보를 가져온다.
  5. 검색 버튼 태그를 드라이버로 실행해 search 변수에 담는다.
  6. search.click() 하면 클릭하여 검색이 실행된다.
profile
코린이 공부중

0개의 댓글

관련 채용 정보