2008-11-05 2 views
1

이 솔루션을 창에서 실행하는 동안이 솔루션이 어떤 언어로 쓰여지 든 상관하지 않는다고 말하면서 머리말을 붙이겠습니다. 내 문제는 이것입니다. 나중의보고를 위해 정기적으로 얻으려는 데이터가 자주 업데이트되는 사이트가 있습니다. 이 사이트는 JavaScript가 제대로 작동하도록 요구하므로 wget을 사용하면 효과가 없습니다. 프로그램에 브라우저를 설치하거나 독립 실행 형 브라우저를 사용하여이 데이터의 화면을 정기적으로 긁어내는 좋은 방법은 무엇입니까? 이상적으로는 페이지의 특정 테이블을 잡고 싶지만 필요한 경우 정규 표현식을 사용할 수 있습니다.프로그래밍 방식으로 웹 사이트에서 콘텐츠를 정기적으로 얻으려면 어떻게해야합니까?

+0

멍청한 질문 - 활용할 수있는 RSS 피드가 있습니까? –

답변

9

아마도 Watir, Watin 또는 Selenium과 같은 웹 응용 프로그램 테스트 도구를 사용하여 페이지를 값을 가져 오기 위해 브라우저를 자동화 할 수 있습니다. 이전에 데이터를 긁어 모으기 위해이 작업을 수행 했으므로 꽤 잘 작동합니다.

+0

저는 WatiN을 사용하여 javascript/html 게임을 자동화했으며 전에 필요한 값을 쉽게 검색했습니다. – mmcdole

3

JavaScript가 필수 인 경우 ActiveX (CreateObject("InternetExplorer.Application"))를 통해 Internet Explorer를 인스턴스화하고 Navigate2() 메서드를 사용하여 웹 페이지를 열 수 있습니다. 페이지가 (document.ReadyState 확인)로드 완료

Set ie = CreateObject("InternetExplorer.Application") 
ie.Visible = True 
ie.Navigate2 "http://stackoverflow.com" 

후에는 DOM에 대한 전체 액세스 권한을 가지고 있고 당신이 원하는 내용을 추출하기 위해 어떤 방법을 사용할 수 있습니다.

0

Badboy 시도하십시오. 귀하의 웹 사이트에 대한 시스템 테스트를 자동화하는 것이지만, 귀하가 원하는대로 할 수있는 정규 표현식 규칙을 찾을 수 있습니다.

2

당신은 Beautiful Soup을 볼 수 있습니다. 오픈 소스 파이썬이므로 쉽게 프로그래밍 할 수 있습니다. 웹 사이트 인용 :

Beautiful Soup는 스크린 스크래핑과 같은 빠른 처리 프로젝트를 위해 고안된 Python HTML/XML 파서입니다. 세 가지 기능이 강력 해집니다 :

  1. 나쁜 인상을 주면 아름다운 수프가 질식하지 않습니다. 원본 문서와 비슷한 정도의 구문 분석 트리를 만듭니다. 일반적으로 필요한 데이터를 수집하여 도망 가기에 충분합니다.
  2. Beautiful Soup은 구문 분석 트리 탐색, 검색 및 수정을위한 몇 가지 간단한 방법과 Pythonic 관용구를 제공합니다. 문서를 해부하고 필요한 것을 추출하는 툴킷입니다. 각 응용 프로그램에 대해 사용자 지정 파서를 만들 필요가 없습니다.
  3. Beautiful Soup은 들어오는 문서를 유니 코드로, 보내는 문서를 UTF-8로 자동 변환합니다. 문서가 인코딩을 지정하지 않고 Beautiful Soup이 자동 검색을 지정할 수 없다면 인코딩에 대해 생각할 필요가 없습니다. 그런 다음 원래 인코딩을 지정하면됩니다.
+0

웹 내용을 파싱하려면 [HTML5lib] (http://code.google.com/p/html5lib/)로 마이그레이션해야합니다. – hendry

1

저는 정확히 Yahoo Pipes을 권장합니다. 그런 다음 yahoo 파이프 데이터를 RSS 피드로 가져 와서 원하는대로 할 수 있습니다.

0

Excel이있는 경우 웹 페이지의 데이터를 Excel로 가져올 수 있습니다.

데이터 메뉴에서 외부 데이터 가져 오기를 선택한 다음 새 웹 쿼리를 선택하십시오.

일단 데이터가 Excel에 있으면 Excel에서 데이터를 조작하거나 다른 위치에서 사용할 수있는 형식 (예 : CSV)으로 출력 할 수 있습니다.

0

Whaledawg의 제안을 칭찬하면서 RSS 스크래퍼 응용 프로그램 (Google 검색 수행)을 사용하도록 제안한 다음 응답 스트림 대신 프로그래밍 방식으로 소비하는 멋진 원시 XML을 얻을 수있었습니다.자신을 구현하고 싶다면 더 많은 아이디어를 줄 수있는 몇 가지 오픈 소스 구현이있을 수도 있습니다.

1

Java (또는 JRuby, Jython 등과 같은 JVM에서 실행되는 다른 언어)에 익숙한 사용자는 HTMLUnit을 사용할 수 있습니다. HTMLUnit은 완전한 브라우저를 시뮬레이트합니다. http 요청을 보내서 각 페이지에 대한 DOM을 만들고 Javascript를 실행합니다 (Mozilla 's Rhino 사용).

또한,이 시뮬레이션 브라우저에로드 된 문서에 XPath 쿼리를 실행할 수 있습니다, 당신은 모듈 JavaScript와 펄 모듈 LWP을 사용할 수있는 등

http://htmlunit.sourceforge.net

0

, 이벤트를 시뮬레이션 할 수 있습니다. 이 설정이 가장 빠를 수는 없지만 안정적으로 작동해야합니다. 나는 이것이 Perl에 대한 첫 번째 진출은 아닐 것입니다.

+0

ActiveState가 JavaScript Perl 모듈을 지원하는지 확인해 보았습니다. –

0

최근이 주제에 대한 연구를했습니다. 내가 찾은 가장 좋은 자료는 this Wikipedia article으로 많은 화면 긁기 엔진에 대한 링크를 제공합니다.

내가 서버로 사용할 수있는 일을 필요로하고 일괄 적으로 실행해야하고, 초기 조사에서 은 오픈 소스 솔루션으로 상당히 좋다고 생각합니다. 나는 또한 Screen Scraper에 감명을 받았습니다. 매우 기능이 풍부하고 다른 언어로 사용할 수있는 것 같습니다.

Scrapy이라는 새 프로젝트가 있는데 아직 체크 아웃하지 않았지만 파이썬 프레임 워크입니다.

관련 문제