2013-07-15 1 views
4

셀렌/webdriver를 사용하여 브라우저를 시뮬레이트하고 일부 웹 사이트 콘텐츠를 긁어 내고 싶습니다. 나에게 가장 빠른 방법이 아니더라도 스크립트 실행과 같은 많은 이점이 있습니다.Selenium을 사용한 브라우저 자동화 : 지문 인식, 인식 가능성 및 추적 성?

많은 웹 사이트에서 자동화 된 방법 (예 : google이나 bing과 같은 검색 엔진)을 통해 액세스하는 것은 금지되어 있습니다.

한 가지 도구의 경우 Google에서 추정 한 결과 통계를 여러 키워드로 긁어 내야합니다. 다음과 같이 표시됩니다. google.com을 방문하고 키워드를 입력하고 결과를 스크랩 한 브라우저를 시뮬레이션 한 후 다음 키워드에 잠시 멈춘 후 결과를 스크랩합니다.

내 질문 : 웹 사이트에서 브라우저를 손으로 사용하는 대신 브라우저를 시뮬레이트하기 위해 셀레늄을 사용하고 있음을 인식 할 수 있습니까? 특히 구글 케이스는 나에게 약간의 의문을 안긴다. 나는 셀레늄이 부분적으로 구글이나 적어도 구글을 위해 일하는 사람들에 의해 개발 된 것을 안다. 그래서 셀렌을 지문으로 남겨 두지 않습니까? 아니면 브라우저를 직접 사용하거나 셀렌으로 시뮬레이션했는지, 심지어 Google을 사용하는지 결정할 수 있습니까?

답변

3

아니요, 실제로 셀레늄을 사용 중이며 WebDriver에서 직접 브라우저를 직접 조작하지는 않습니다. 나는 낡은 Selenium RC에 대해서는 확신하지 않지만 같은 방식이어야한다. 작동 방식은 다음과 같습니다

  1. 셀레늄 깨끗한 프로파일 브라우저를 열어 그것을 제어를 조종 할 수 있도록
  2. 셀레늄은 브라우저에 매여 (또는 프로필로 선택). 그러나 브라우저는 여전히 대부분의 작업을 수행합니다. 기본적으로 Selenium은 브라우저에 대한 사용자 입력을 바꿉니다.

브라우저에서 보낸 HTTP 헤더의 내용을 읽으면 쉽게 확인할 수 있습니다.

서버에서 Selenium을 인식해야하는 경우 use Browsermob-proxyadd a custom header to your requests을 사용할 수 있습니다.


모두 당신이 알아야 할 것이 하나 있습니다. Selenium을 직접 감지 할 방법은 없지만 방문중인 웹 사이트에서 간접적 인 단서를 찾을 수 있습니다. 보통 이러한 요청에는 거의 아무런 시간도 들이지 않은 요청에 대한 검색이 포함됩니다. Selenium이 사용자처럼 작동하는지 확인하십시오.


편집 2016/04 :

이 Apparanetly이 회사가 그것을 할 수 https://stackoverflow.com/a/33403473/2930045 상태 가능한입니다. 내 추측 - 그리고 그것은 짐작할 만하다 - 셀레늄이 작동하도록 브라우저에 설치하는 JS를 실행할 수 있다는 것입니다.

+1

들으 그것이 정말 분명 자세한 내용은이 유래 질문을 참조하십시오. 수락 된 것으로 표시하기 전에 잠시 기다려야 할 것입니다. 다른 의견이있을 수도 있습니다. 내 대답을 좋아하지 말아라.하지만 자동화 된 브라우저를 인식하는 데 관심이 있다는 것을 상상할 수 있기 때문에 셀렌을 인식 할 수있는 몇 가지 눈에 보이지 않는 방법이있다. 정말 고마워!! – zwieback86

+0

안녕 Slanec, 오늘 나는 firefox를위한 webdriver를 시험해 보았고 오른쪽 아래 구석에있는 "webdriver"텍스트를 발견했고 "Firefox Webdriver 2.33.0"이라는 addon이 설치되어있는 것을 보았습니다. 그것은 나를 어떻게 든 의심스럽게 만들었다. 파이어 폭스에서 내가 사용하는 애드온을 웹 페이지에서 볼 수 없다는 것을 정말로 확신하십니까? 상태 표시 줄에 "webdriver"기호가 표시되지 않습니까? – zwieback86

+0

@ zwieback86 아니요, 누구도 Firefox 플러그인을 감지 할 수 없습니다 (플러그인이 의도적으로 가능하지 않은 경우). http://stackoverflow.com/questions/5067375/detecting-my-own-firefox-extension-from-a-webpage 및/또는 http://webdevwonders.com/detecting-firefox-add-ons/를 참조하십시오. –

1

Signs to yes를 지정하면 사이트에서 Selenium을 사용하고 있다는 사실을 인정할 수 있습니다.
카운터 예제 : www.stubhub.com은 Selenium을 사용하여 시작된 브라우저 인스턴스를 감지하고 차단합니다. 수동으로 "정상적인"브라우징을 수행하는 동안 (Selenium 웹 드라이버가 실행하는 브라우저를 사용하지 않음) 문제없이 작동합니다.

당신의 대답에 대한 Can a website detect when you are using selenium with chromedriver?