크롤링 된 웹 페이지의 스냅 샷 (루비)을 프로그래밍 방식으로 수행하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
웹 페이지의 스냅 샷을 프로그래밍 방식으로 가져 오는 가장 좋은 솔루션은 무엇입니까?
상황은 다음과 같습니다. 저는 많은 웹 페이지를 기어 다니고 주기적으로 한 번씩 한 번씩 한 번씩 각각의 웹 페이지를 기어 다니고 있습니다. 또한 완전히 플래시/플렉스 일 수있는 웹 사이트의 JPG/PNG 스냅 샷을 가져갈 수 있기를 원하므로 스냅 샷을 어떻게 든로드 할 때까지 기다려야합니다.
내가 생성 할 수있는 썸네일의 수에 제한이 없다면 (이유 내에서 하루에 1000).
루비에서 이것을하는 방법이 있습니까? 꽤 힘든 것 같습니다.
이 작업을 수행하는 브라우저 : Safari 또는 Firefox, 가급적 사파리.
정말 고마워.
해결책
이것은 실제로 운영 체제에 달려 있습니다. 필요한 것은 웹 브라우저에 연결하여 이미지에 저장하는 방법입니다.
당신이 Mac에 있다면 - 당신의 최선의 방법은 사용하는 것입니다. 마크 루비 (또는 루비 코코아 - 가까운 시일 내에 이것이 더 이상 사용되지 않을 것이라고 생각하지만) WebKit 프레임 워크를 사용하여 페이지를로드하고 이미지로 렌더링합니다.
이것은 분명히 가능합니다. 영감을 얻으려면 파파라치! 그리고 webkit2png 프로젝트.
OS에 의존하지 않는 또 다른 옵션은 브라우저 샷 API.
다른 팁
Ruby에는 웹 페이지를 렌더링하기 위해 내장 된 라이브러리가 없습니다.
Selenium & Ruby를 사용하는 것이 하나의 가능성입니다. Firefox를 헤드리스 브라우저 (예 : 서버에서)로 실행할 수 있습니다.
브라우저 샷의 소스 코드는 다음과 같습니다. http://sourceforge.net/projects/browsershots/files/
Linux를 사용하는 경우 사용할 수 있습니다 http://khtml2png.sourceforge.net/ 루비를 통해 스크립트.
일부 유료 서비스는 시도하고 자동화합니다
.... 즉, .... 즉? Firefox? 오페라? 무수한 웹 키트 엔진 중 하나?
자동화 할 수 있다면 http://browsershots.org :)
Selenium-RC를 사용하면 스냅 샷 기능이 제공됩니다.
Jruby를 사용하면 SWT의 브라우저 라이브러리를 사용할 수 있습니다.