이 솔루션을 창에서 실행하는 동안이 솔루션이 어떤 언어로 쓰여지 든 상관하지 않는다고 말하면서 머리말을 붙이겠습니다. 내 문제는 이것입니다. 나중의보고를 위해 정기적으로 얻으려는 데이터가 자주 업데이트되는 사이트가 있습니다. 이 사이트는 JavaScript가 제대로 작동하도록 요구하므로 wget을 사용하면 효과가 없습니다. 프로그램에 브라우저를 설치하거나 독립 실행 형 브라우저를 사용하여이 데이터의 화면을 정기적으로 긁어내는 좋은 방법은 무엇입니까? 이상적으로는 페이지의 특정 테이블을 잡고 싶지만 필요한 경우 정규 표현식을 사용할 수 있습니다.프로그래밍 방식으로 웹 사이트에서 콘텐츠를 정기적으로 얻으려면 어떻게해야합니까?
답변
아마도 Watir, Watin 또는 Selenium과 같은 웹 응용 프로그램 테스트 도구를 사용하여 페이지를 값을 가져 오기 위해 브라우저를 자동화 할 수 있습니다. 이전에 데이터를 긁어 모으기 위해이 작업을 수행 했으므로 꽤 잘 작동합니다.
저는 WatiN을 사용하여 javascript/html 게임을 자동화했으며 전에 필요한 값을 쉽게 검색했습니다. – mmcdole
JavaScript가 필수 인 경우 ActiveX (CreateObject("InternetExplorer.Application")
)를 통해 Internet Explorer를 인스턴스화하고 Navigate2()
메서드를 사용하여 웹 페이지를 열 수 있습니다. 페이지가 (document.ReadyState
확인)로드 완료
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate2 "http://stackoverflow.com"
후에는 DOM에 대한 전체 액세스 권한을 가지고 있고 당신이 원하는 내용을 추출하기 위해 어떤 방법을 사용할 수 있습니다.
Badboy 시도하십시오. 귀하의 웹 사이트에 대한 시스템 테스트를 자동화하는 것이지만, 귀하가 원하는대로 할 수있는 정규 표현식 규칙을 찾을 수 있습니다.
당신은 Beautiful Soup을 볼 수 있습니다. 오픈 소스 파이썬이므로 쉽게 프로그래밍 할 수 있습니다. 웹 사이트 인용 :
Beautiful Soup는 스크린 스크래핑과 같은 빠른 처리 프로젝트를 위해 고안된 Python HTML/XML 파서입니다. 세 가지 기능이 강력 해집니다 :
- 나쁜 인상을 주면 아름다운 수프가 질식하지 않습니다. 원본 문서와 비슷한 정도의 구문 분석 트리를 만듭니다. 일반적으로 필요한 데이터를 수집하여 도망 가기에 충분합니다.
- Beautiful Soup은 구문 분석 트리 탐색, 검색 및 수정을위한 몇 가지 간단한 방법과 Pythonic 관용구를 제공합니다. 문서를 해부하고 필요한 것을 추출하는 툴킷입니다. 각 응용 프로그램에 대해 사용자 지정 파서를 만들 필요가 없습니다.
- Beautiful Soup은 들어오는 문서를 유니 코드로, 보내는 문서를 UTF-8로 자동 변환합니다. 문서가 인코딩을 지정하지 않고 Beautiful Soup이 자동 검색을 지정할 수 없다면 인코딩에 대해 생각할 필요가 없습니다. 그런 다음 원래 인코딩을 지정하면됩니다.
웹 내용을 파싱하려면 [HTML5lib] (http://code.google.com/p/html5lib/)로 마이그레이션해야합니다. – hendry
저는 정확히 Yahoo Pipes을 권장합니다. 그런 다음 yahoo 파이프 데이터를 RSS 피드로 가져 와서 원하는대로 할 수 있습니다.
Excel이있는 경우 웹 페이지의 데이터를 Excel로 가져올 수 있습니다.
데이터 메뉴에서 외부 데이터 가져 오기를 선택한 다음 새 웹 쿼리를 선택하십시오.
일단 데이터가 Excel에 있으면 Excel에서 데이터를 조작하거나 다른 위치에서 사용할 수있는 형식 (예 : CSV)으로 출력 할 수 있습니다.
Whaledawg의 제안을 칭찬하면서 RSS 스크래퍼 응용 프로그램 (Google 검색 수행)을 사용하도록 제안한 다음 응답 스트림 대신 프로그래밍 방식으로 소비하는 멋진 원시 XML을 얻을 수있었습니다.자신을 구현하고 싶다면 더 많은 아이디어를 줄 수있는 몇 가지 오픈 소스 구현이있을 수도 있습니다.
Java (또는 JRuby, Jython 등과 같은 JVM에서 실행되는 다른 언어)에 익숙한 사용자는 HTMLUnit을 사용할 수 있습니다. HTMLUnit은 완전한 브라우저를 시뮬레이트합니다. http 요청을 보내서 각 페이지에 대한 DOM을 만들고 Javascript를 실행합니다 (Mozilla 's Rhino 사용).
또한,이 시뮬레이션 브라우저에로드 된 문서에 XPath 쿼리를 실행할 수 있습니다, 당신은 모듈 JavaScript와 펄 모듈 LWP을 사용할 수있는 등
, 이벤트를 시뮬레이션 할 수 있습니다. 이 설정이 가장 빠를 수는 없지만 안정적으로 작동해야합니다. 나는 이것이 Perl에 대한 첫 번째 진출은 아닐 것입니다.
ActiveState가 JavaScript Perl 모듈을 지원하는지 확인해 보았습니다. –
최근이 주제에 대한 연구를했습니다. 내가 찾은 가장 좋은 자료는 this Wikipedia article으로 많은 화면 긁기 엔진에 대한 링크를 제공합니다.
내가 서버로 사용할 수있는 일을 필요로하고 일괄 적으로 실행해야하고, 초기 조사에서 은 오픈 소스 솔루션으로 상당히 좋다고 생각합니다. 나는 또한 Screen Scraper에 감명을 받았습니다. 매우 기능이 풍부하고 다른 언어로 사용할 수있는 것 같습니다.
Scrapy이라는 새 프로젝트가 있는데 아직 체크 아웃하지 않았지만 파이썬 프레임 워크입니다.
- 1. 프로그래밍 방식으로 SAS 인코딩 옵션을 얻으려면 어떻게해야합니까?
- 2. UINavigationBar.navigationItem의 높이를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 3. 프로그래밍 방식으로 IE에서 응답 정보를 얻으려면 어떻게해야합니까?
- 4. 프로그래밍 방식으로 장비 일련 번호를 얻으려면 어떻게해야합니까?
- 5. 웹 사이트의 페이지 랭크를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 6. 프로그래밍 방식으로 웹 사이트에서 이미지 스크롤
- 7. PAMIE에서 페이지 콘텐츠를 얻으려면 어떻게해야합니까?
- 8. 클라이언트 사이트에서 프로그래밍 방식으로 끝점 주소를 변경하려면 어떻게해야합니까?
- 9. 컴퓨터의 로컬 네트워크 IP 주소를 프로그래밍 방식으로 얻으려면 어떻게해야합니까? (C#)
- 10. (프로그래밍 방식으로) 모든 파이썬 유형 목록을 얻으려면 어떻게해야합니까?
- 11. C#에서 프로그래밍 방식으로 최신 클리어 케이스 레이블을 얻으려면 어떻게해야합니까?
- 12. mac os x macbooks의 배터리 수명을 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 13. Eclipse RCP : 프로그래밍 방식으로 제품 파일에서 버전 번호를 얻으려면 어떻게해야합니까?
- 14. JBoss AS 5.1에서 버전을 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 15. 안드로이드에서 프로그래밍 방식으로 7 세그먼트 시계를 얻으려면 어떻게해야합니까?
- 16. MonoTouch 시작시 프로그래밍 방식으로 대형 iPad 창을 얻으려면 어떻게해야합니까?
- 17. v1.0에서 프로그래밍 방식으로 PowerShell cmdlet의 경고 출력을 얻으려면 어떻게해야합니까?
- 18. WPF FrameworkElement의 현재 Visual State를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 19. 프로그래밍 방식으로 KDE에서 키보드 반복 설정을 얻으려면 어떻게해야합니까?
- 20. iPhone International Mobile Equipment Identity를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
- 21. Drupal, Ubercart : 프로그래밍 방식으로 주문 인쇄 버전을 얻으려면 어떻게해야합니까?
- 22. SSRS : 텍스트 콘텐츠를 프로그래밍 방식으로 수정하는 방법?
- 23. 프로그래밍 방식으로 로컬 tfs 콘텐츠를 제거하는 방법?
- 24. 웹 사이트에서 콘텐츠를 예약하는 가장 효율적인 방법
- 25. 웹 사이트에서 모든 콘텐츠를 긁는 방법?
- 26. 웹 양식에서 데이터를 얻으려면 어떻게해야합니까?
- 27. 프로그래밍 방식으로 웹 페이지에서 데이터를 검색하는 방법?
- 28. 웹 사이트에서 이미지를 조작하려면 어떻게해야합니까?
- 29. 프로그래밍 방식으로 웹 로그인을
- 30. 프로그래밍 방식으로 SharePoint 사이트에서 폴더를 만드는 방법
멍청한 질문 - 활용할 수있는 RSS 피드가 있습니까? –