2010-01-15 2 views
44

웹 상호 작용, 즉 보안 웹 사이트에서 파일을 주기적으로 다운로드하는 작업을 자동화하려고합니다. 기본적으로 내 사용자 이름/비밀번호를 입력하고 해당 URL로 이동합니다.Headless, scriptable Firefox/Webkit on linux?

필자는 Python에서 간단한 스크립팅을 시도하고보다 정교한 스크립팅을 시도했지만이 특정 웹 사이트가 로그인에 대해 불쾌한 javascript 및 플래시 기반 메커니즘을 사용하고 있음을 발견하고 쓸모가 없습니다.

그런 다음 HTMLUnit을 사용해 보았지만 그 중 하나는 작동하지 않는 것 같습니다. 나는 플래시의 사용이 문제라고 생각한다.

나는 더 이상 그것에 대해 생각하고 싶지 않기 때문에 실제 브라우저에서 스크립트를 작성하여 로그인하고 필요한 파일을 가져옵니다.

요구 사항은 다음과 같습니다 : 리눅스 서버에

  • 실행 (즉, 어떤 X 실행합니다.). X가 실제로 필요하다면 그렇게 할 수 있지만 행복하지는 않습니다.
  • 신뢰할 수 있습니다. 나는이 일을 시작하고 다시 그것에 대해 생각하고 싶지 않습니다.
  • 스크립트 가능. 너무 정교한 것은 아니지만 브라우저에서 취할 다양한 단계와 방문 할 페이지를 알려줄 수 있어야합니다.

헤드리스 X없는 스크립트 가능한 브라우저를위한 유용한 툴킷이 있습니까? 이런 식으로 해봤습니까? 그렇다면 지혜가 있습니까?

답변

17

IE 임베디드 브라우저와 관련된 작업을 수행했습니다 (숨겨진 브라우저 구성 요소 패널이있는 GUI 응용 프로그램 임에도 불구하고). 실제로 layout engine을 가져 와서 출력 논리를자를 수 있습니다. 탐색은 스크립트와 유사한 이벤트를 발생시켜 수행해야합니다.

Crowbar을 사용할 수 있습니다. 파이어 폭스 (도마뱀 엔진)의 헤드리스 버전입니다. 브라우저를 요청을 받아 들일 수있는 RESTful 서버로 바꾼다 ("URL 가져 오기"). 그래서 그것은 html을 구문 분석하고 DOM으로 표현하며 수행 된 모든 스크립트에 대해 정의 된 지연을 기다립니다.

그것은 리눅스에서 작동합니다. JS 및 풍부한 XULrunner 기능을 사용하여 목표에 맞게 쉽게 확장 할 수 있다고 가정합니다.

+0

Crowbar는 POST http 요청을 지원합니까? 문서는 매우 열악합니다 ... – hamczu

1

플래시 상호 작용 (및 관심이있는 방법)을 수행하는 방법을 모르지만 html/javascript의 경우 Chickenfoot을 사용할 수 있습니다.

Linux에서 헤드리스 스크립트 가능 브라우저를 사용하려면 Qt webkit library을 사용할 수 있습니다. Here is an example use.

+0

Thansk Richard, 멋지게 보이겠습니다. – Parand

38

phantomjs?

+1

PhantomJS는 자동화 테스트 프레임 워크와 통합 할 수있는 가장 쉬운 방법을 개발하고 있습니다. –

+2

그래,하지만 웹 사이트에 로그인하고 쿠키를 사용하는 등 시뮬레이션을하고 싶다면 행운을 빈다. –

+3

Phantomjs에는 X 서버가 필요합니다 (http://code.google.com/p/phantomjs/issues/detail?id=33) –

8

Selenium을 사용해 보셨습니까? Firefox 용 확장 프로그램을 사용하여 사용 시나리오를 기록 할 수 있습니다.이 확장 프로그램은 나중에 다양한 방법으로 재생할 수 있습니다.

편집 : 방금 매우 늦은 응답임을 알았습니다. :)

6

WebKitDriver을 살펴보십시오. 이 프로젝트에는 헤드없는 WebKit 구현이 포함됩니다.Linux 용

-1

위한 iMacros 스크립트 파이어 폭스와 크롬을 사용하면 다음을 수행 할 수 있습니다 http://wiki.imacros.net/Linux

+0

iMacros는 Linux에서 실행되지만 지침에서는 DISPLAY 설정이 필요한 기술을 구체적으로 설명합니다. 헤드리스를 실행하지만 윈도우 환경이 필요합니다. –

0

는이를 위해, 난 그냥 CouchDBs (example하고 Futon)에 게시 크롬 확장 물품. Couch를 매니페스트의 권한에 추가하여 도메인 간 XHR을 허용합니다.

또한, 기괴한을 고려,

은 (내가 어떤 점에서 지렛대를 시도거야이 스레드를 발견하는 데. 내가 뭘했는지에 머리가없는 대안의 검색이 글타래에 도착) 이 웹 사이트의 특성상, 플래시 및 자바 스크립트를 통과하기 위해 보안 구멍을 활용할 수 있는지 궁금해 할 수 없습니다.