2012-07-22 3 views
1

다음을 달성하거나 브라우저를 스크립팅하거나 서버에 요청하거나 로그인하여 사이트를 탐색하려면 무엇을 사용할 수 있습니까? 링크를 찾아 해당 링크로 이동하십시오.스크립팅 된 브라우저 스카 퍼

지금은 NodeJS에 들어 있기 때문에 node.io를보고있었습니다. 그것은 당신이 사이트를 아주 쉽게 긁을 수있게하지만 문제는 제가 로그인하려고 할 때 나는 아무것도 얻을 수 없다는 것입니다!

nodeio = require "node.io" 

nodeio.scrape -> 

    @post "http://localhost/auth/login", { 
     username: "username" 
     password: "password" 
    }, -> 

     console.log "=====After Login=====" 

하지만 난 그냥 로그인, 나는 후 로그인 console.log에 도착해야 실패하더라도

OK: Job complete 

를 얻을?


그럼 내가 대신 브라우저를 스크립팅하여이를 구현하기 어쩌면 그것의 더 나은 생각, 그것은 더 밀접하게 실제 요청을 시뮬레이션 할 것인가?

답변

2

셀렌 또는 Watir로 브라우저를 스크립팅 할 수 있습니다. 그들은 실제 브라우저를 사용하므로 저수준 도구보다 느려지지만 브라우저 (예 : JavaScript)는 모든 것을 수행합니다.

+0

일부 사이트에서는 작동하지 않는 Zombie.JS 경로를 사용해 보았습니다 (아마도 나를 제어하지는 않음), 아마도 봇 연결이나 무언가를 감지하고 연결을 거부 할 수 있습니다. 그래서 셀레늄 경로, 작품,하지만 그냥 느린, 내 마음에 드는 너무 느린 abit,하지만 난 그냥 실행을 떠날 수있는 것 같아요. 느린 이유는 'get (url)'을 할 때마다 광고 또는 스크립트를 포함하여 전체 페이지가 렌더링되기를 기다리기 때문입니다. – jm2

+0

Watir이 전체 페이지가로드 될 때까지 기다리는 것을 알고 있습니다 (스크립트가 아님). 나는 Selenium이 그렇지 않다고 들었지만, 그것을 바꿀 수도있다. –

2

node.io는 작업을위한 좋은 도구 인 것처럼 보이지만, zombie.js도 권장합니다. 그것은 주로 테스팅쪽으로 조정되는 것처럼 보이지만 문서는 스크래핑에 아주 좋을 것 같습니다.

스크립트 된 브라우저 경로로 이동하려면 내 대답을 무시하십시오. :)

+0

일부 사이트가 내 연결을 차단 한 것처럼 보입니다. 그렇지 않으면 Zombie/NodeIO가 테스트/사이트 제어를위한 것일 수 있습니다. 어쩌면 사용자 에이전트 등을 설정할 필요가 있을까요? – jm2

+0

예, 근근이 살아가고있는 사이트는 사용자 에이전트를 확인하거나 클라이언트/IP 당 API 속도 제한이있을 수 있습니다. – rdrey

+0

흠 ... 좀비/NodeIO가 실제 브라우저처럼 동작하도록하려면 어떻게해야합니까? 사용자 에이전트 작업과 같은 올바른 HTTP 헤더를 보낼 것인가? 실제 브라우저에서 보내는 일반적인 헤더는 무엇입니까? – jm2

관련 문제