2009-11-17 4 views
11

저는 몇 년 동안 프로그래밍을 해왔습니다. 질문이 하나 있습니다.자동으로 웹 사이트를 탐색하는 프로그래밍 언어는 무엇입니까?

웹 사이트를 자동으로 탐색하고 다양한 작업을 수행 할 수있는 프로그램을 만들 수있는 프로그래밍 언어는 무엇입니까? 예를 들어 로그인하고 특정 페이지를 탐색하고 양식을 채우고 특정 텍스트를 추출하는 등의 작업을 수행 할 수 있습니다.

매크로와 다른 점은 미리 정의 된 동작 집합 만 수행하기 때문입니다. 반면에 프로그램은 화면에 표시되는 내용에 따라 다르게 작동합니다.

아마도 어떤 종류의 스크립팅 언어입니까? 또는 범용 언어. 귀하의 답변에 감사드립니다.

답변

7

저는 Ruby와 watir을 사용하여 매우 간단하고 쉽게 IE 나 Firefox를 자동화하여 작동합니다.이 방법

브라우저는 자바 스크립트를 엉망을 처리하지만 당신은 여전히 ​​ 그래서 당신은 단지 온라인 양식을 작성처럼 고유 한 논리를 추가해야 페이지 콘텐츠에 대한 완벽한 액세스 할 수 있습니다.

2

LWP::Simple은 Perl에서 사용할 수 있습니다.

웹에서 많은 정보를 찾을 수 있지만 Getting more out of LWP::Simple은 Perlmonks에 대한 자습서입니다.

+0

Perl이 언데드이기 때문에 저를 downvote하지 마십시오. – t3rse

+0

LWP :: Simple은 웹 페이지의 단일 리소스를 가져올 수 있지만 웹 사이트를 탐색하기위한 기능은 없습니다. –

0

거의 모든 언어가 리눅스에서 perl, php/curl, Windows에서 asp/C#을 할 것입니다. 당신은 당신이 언어를 찾고되지 않습니다 생각

public static void Main() 
{ 
    // Create a request for the URL.   
    WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html"); 
    // If required by the server, set the credentials. 
    request.Credentials = CredentialCache.DefaultCredentials; 
    // Get the response. 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    // Display the status. 
    Console.WriteLine (response.StatusDescription); 
    // Get the stream containing content returned by the server. 
    Stream dataStream = response.GetResponseStream(); 
    // Open the stream using a StreamReader for easy access. 
    StreamReader reader = new StreamReader (dataStream); 
    // Read the content. 
    string responseFromServer = reader.ReadToEnd(); 
    // Display the content. 
    Console.WriteLine (responseFromServer); 
    // Cleanup the streams and the response. 
    reader.Close(); 
    dataStream.Close(); 
    response.Close(); 
} 
-1

,하지만 당신이 할 수있는 프레임 워크 -

확인이 아웃 이. 일반적으로 web scraping software에 의해 수행됩니다. 일부 온라인 서비스가 있습니다 (예 : Mozenda을 사용하면 간단한 작업을 수행 할 수 있습니다. 또한보다 엄격한 방식으로 동일한 작업을 수행하는 데 도움이되는 프레임 워크가 있습니다. 나는 screen-scraper과 관련된 경험이 있으며, 가장 풍부한 기능 중 하나라고 생각합니다.

아직 프레임 워크의 또 다른 유형은 웹 크롤러입니다 -..이 웹 사이트 및 검색 엔진과 같은 인덱스 그것을 (를 통해 이동하는 것입니다 펄 들어

+0

webrequest et similar (cURL)은 양식, 자바 스크립트 등과 상호 작용할 수 없습니다. – kappa

6

WWW::Mechanize 웹 사이트를 탐색하기위한 표준 도구는 쿠키를 처리 , 세션, 폼과 상호 작용하는 방법, 클릭 수행하는 방법 등을 알고있다.

자바 스크립트를 처리하지 못하는 단점이있다. 자바 스크립트와 상호 작용할 수있는 펄 모듈이 있지만, WWW :: Mechanize와 통합되지 않습니다.

1

저는 분명히 la 스크립팅을 할 것입니다. nguage, Ruby/Mechanize가 제일 좋아하는 데 좀 보시기 바랍니다 examples ... Perl과 Python도 좋은 선택입니다. 다른 응용 프로그램의 일부가 될 계획이 없다면 정적으로 입력 된 언어는 피할 것입니다. 너무 많은 상용구 코드 IMHO.

require 'rubygems' 
require 'mechanize' 

agent = WWW::Mechanize.new 
page = agent.get('http://google.com/') 
google_form = page.form('f') 
google_form.q = 'ruby mechanize' 
page = agent.submit(google_form) 
pp page 

그냥 일반 HTTP GET/POST 아니다으로 기계화가, 정말 좋은 라이브러리 요청 및 페치 : 그것은 이렇게 밀접하게 실제 웹 브라우저의 동작을 모방 쿠키를 추적하는 것.

5

이러한 답변 중 상당수는 응용 프로그램을 스크래핑하기위한 것입니다. 이것이 원하는 것이라면, 선택한 언어로 WWW :: Mechanize와 동등한 것을 사용하십시오 (Perl 's는 정규식이며 Python은 잘 작동합니다).

그러나 귀하의 질문에 따르면 웹 사이트의 단위 테스트 자동화를 원할 수도 있습니다. 이 경우 주어진 페이지에 대해 반환 된 HTML의 정확성을 테스트하기위한 프레임 워크 외에도 브라우저 내 테스트 프레임 워크가 필요합니다.

눈에 띄는 것은 TwillSelenium입니다.

다음은 사용자가 요구하는 바를 정확하게 제공합니다. 스크립트에서 웹 사이트를 탐색 할 수있는 간단한 인터페이스입니다. 그들은 당신의 브라우징을보다 잘 제어 할 수 있습니다. 특히 웹 사이트에서 흔적을 남기고 앞으로 나아갈 때 나타나는 자바 스크립트 및 다양한 유형의 효과와 관련하여 더욱 그렇습니다.

1

WatiN은 다른 방법으로 찾아보고 다양한 작업을 수행합니다.

관련 문제