selenium

조회 수 823 추천 수 0

 웹 애플리케이션 테스트 프레임워크 라고 읽고 크롤링프레임워크이라고 씁니다.

 

직접 크롬이나 웹브라우저를 열고 자동화가 가능합니다.

 

여러 프로그래밍 언어를 지원하고 핵심은 웹 드라이버을 열어서 동적으로 컨트롤 할수있다는 점이죠 .. 

 !!로봇 감지를 우회할 수가 있습니다.!!


크롬 59 버전부터 headless를 지원해서 창 띄움없이 쓸수 있으나 로봇으로 감지될 경우가 많아서

 

virtualdisplay를 띄워서 처리하시면 되고..

 

마우스 클릭이나 키보드 입력을 하신다면 headless에선 못하고 실제 크롬을 뛰워서 마우스및 키보드 제어를 통해서 작업을 하실수가 있어요..

 

https://www.selenium.dev/

 

 

시간이 되면 리눅스환경에서 테스트 하는 강의를 올려보려고 합니다.

 

이거 때문에 파이썬을 배우네요..ㅎㅎ

 

 

 

natura

profile
취미로 개발하는 사람입니다.
  • profile
    selenium은 장점이자 단점이 직접 브라우저를 실행하는것이 문제이죠.

    예를들어 크롬에서 작업한다하면 윈도우에서 파이선을 실행할경우 브라우저를 실행하기때문에 실제로 작업의 대한 스탭을 직접 볼 수 있다는 장점이 있지만, 문제는 파이썬이 처리하는 속도보다 브라우저에서 로딩하는 시간이 늦어지는 부분이라던지 이런 여러가지 고려사항으로 sleep라는 함수를 굳이 써야 하는 문제가 있기 때문에 별로 추천을 하지 않는 방법입니다.

    저는 보통 이러한 api요청이라던지 이런 부분이 있다면 차라리 httpRequest 같은 클라이언트를 사용하여 바로바로 요청시 값을 가져오는 데이터를 지속적으로 활용할 수 있는 방안을 사용합니다.

    이러한 방식들은 윈도우이거나 브라우저를 실행이 되어야 한다던가 등등의 조건없이 프로그램내에서 알아서 실행되는 장점이 있기 때문에 굳이 필요없는 요청들을 줄일 수 있다는 장점이 잇지요.


    selenium의 경우 보통 컴퓨터에서 실행시 로그인하고 Xetown출석하는 자동 출석기같은거라던지 그 외 파싱을 브라우저를 통해서 하는방식이기 때문에 저는 별로 쓰지 않습니다..ㅋㅋㅋ
  • profile
    selenium은 웹 애플리케이션 테스트 프레임워크가 맞습니다. 이걸 크롤링 목적으로 사용하시겠다는건 건물 공사에 티스푼을 쓰시겠다는것과 같습니다. 매우 비효율적이죠.
  • profile profile

    네네 첫줄에 적은건 농담입니다. ㅋㅋ
    비효율적이긴하나.. 따른 대안이 없을때는 효과적입니다. ( API 미제공 / anti robot etc...)

  • profile
    실제 브라우저가 아니면 안되는곳은 이것만한게 없긴하죠 ㅎ
  • profile
    Ajax 로 구현된 웹사이트 가져올 때는 사실 대안이 없지않나요
  • profile profile

    ajax로 무엇을 주고받는지 개발자도구로 확인한 후, 스누피 같은 것을 사용해서 그 부분만 직접 하면 훨씬 빠릅니다. 가져오려는 데이터와 무관한 각종 디자인 요소와 스크립트들이 로딩될 때까지 기다리지 않아도 되니까요.^^

  • profile profile
    맞습니다. 어차피 호출해서 값을 프론트에 뿌려주는거니까요.
    잘 정리된 데이터 전달받을 수 있으면 더할 나위 없이 좋죠.
  • profile
    가끔은 직접 데이터 요청해서 전달받고 후가공하는 것이 너무 고통스러운 경우도 있는 것 같아요.
    엄청난 nested구조의 리턴값을 받는 경우도 있고,
    어떤 경우는 인증 통과 부분을 상당히 꼬아놓은 경우도 있고,
    특히 웹소켓까지 쓰는 뉴스 사이트 댓글 같은 거 크롤링 할 때 너무나 고통스러웠던 기억이 있어요.
  • profile
    정말 간단한걸 빠르게 구현하는 용도로 생각하면 크롤러로 쓸 수 있긴 하죠ㅋㅋ 실제로 그렇게 쓰시는 분들을 보긴 했습니다만 예민하신 분들은 머리에 느낌표가 떠버리는 주제이니 가급적 테스팅 도구로만 쓰는게 좋습니다ㅎㅎ
  • profile
    최근에 여러모로 사용하고 있는 데 괜찮습니다.
    엑셀에 입력한 내용을 기준으로 xe에 첨부파일 추가하면서 올린다던지.. (물론 모듈로도 가능하겠지만 개발을 해야하니..)
    최근에 핫한 그래픽 카드 구매 등등... (물론 요즘은 파이썬 조합으로 하기엔 파이썬이 느려서 어렵다고..)
  • profile profile
    아.. 그래픽카드는 봇과의 싸움..