2014-11-15 2 views
2

웹 스 크레이퍼 인 웹 애플리케이션이 있습니다. 웹 스크래퍼 스크립트는 클라이언트의 브라우저에서 ajax 호출을 통해 호출됩니다 (기본적으로 PHP 스크립트를 시작하여 펄 스크립트를 호출하여 무거운 작업을 수행합니다). 스크립트가 많은 양의 데이터를 긁어 모으기 때문에 완료하기까지 최대 1-2 분이 걸립니다. 나는 단지 1-2 분 동안 로딩 애니메이션을 보여주는 것 대신에 일종의 '진행'을 보여주기 위해 펄 스크립트에서 사용자의 브라우저로 데이터를 전송하는 가장 좋은 방법을 알아 내려고하고있다. 응용 프로그램은 내 자신의 우분투 VPS에서 호스팅되므로 원하는 모든 기술을 사용할 수 있습니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?우분투 서버에서 데이터를 브라우저로 푸시

답변

2

, 당신은 "asyncronous"응용 프로그램에 스크립트를 전환하는 것이 좋습니다 플러그인 진행 상황을 사용할 수 긁힌 자국과 할 수있는 '푸시'업데이트의 어떤 종류의 동안 Perl을 사용하여 그렇게합니다. 당신은 Mojolicious, 또는 많은 Plack/PSGI 서버 대안 중 하나 같은 것을 사용할 수 있습니다 ( : Twiggy, Starlet,CPANKelp, CF)이 별도로 스크립트를 실행 할 수 있습니다 신청.

당신이 당신의 스크레이퍼 튜토리얼에서이 방법을 실행하는 방법을 알아낼 수 있다면이 부분 스크 레이 핑 결과 페이지를 업데이트 할 수 까다로운 약간 수 있지만 수있는 "방법"이와 같은 유형 기사 :

하고 사용에 대한 논의 검토 :

.. 그러면 기존 서버 인프라에 업데이트 된 스크립트를 연결할 수 있습니다. 이를 수행하는 한 가지 방법은 반짝이는 새로운 "websocket 스크립트"를 클라이언트 요청에 액세스 할 수있는 디렉토리 (ProxyPass 또는 이와 동등한 Apache 지시문 사용)에 연결하는 것입니다.

-

참조 http://blogs.perl.org에서 "ultimate" answer to the web scraper in Modern Perl question에도 @creaktive's 예 ...

+0

잔가지는 서버가 어떻게이 Mojolicious 응용 프로그램과 같은 방법으로 도움이 될 것입니까? –

+0

OP는 스크립트 대신 서버로 별도의 환경에서 스크래핑 응용 프로그램을 실행할 수 있다고 생각하고있었습니다. 아마도 특히 Twiggy를 언급하는 것은 여기에서 도움이되지 않습니다. –

+1

Mojolicious를 권하고 싶지만 대안을 추천하고 싶다면 PSGI에 대해 언급 할 수 있습니다. 그 밖의 배포 옵션은 풍부하고 Twiggy입니다. –

관련 문제