2012-04-23 6 views
0

이전 데이터베이스에서 일부 이미지를 캡처하려고합니다.페이지 스크랩시 동적으로 생성 된 이미지 캡처

스크래퍼를 쓸 때 나는 웹 사이트를 직접 열고() 루비를 사용하여 내용을 읽습니다. 때로는 스크립트를 사용하여 적절한 curl ... 명령을 호출하기도합니다.

그러나 일부 데이터베이스를 스크랩하여 페이지를 반환 한 다음 서버 측 스크립트에서 가정 한 일련의 난수를 사용하여 이미지 이름에 대상 이미지를 포함합니다. 예를 들어 :

<img ... show_image.jsp?343523.jpg

는 그러나, 나는 전체 웹 사이트에 포함 된 경우에만 작동이 show_image 스크립트가 직접 (거부) 호출 할 수 없습니다.

curl을 사용하거나 루비 또는 PHP에서 전체 페이지를 다운로드 할 수 있습니까? 예 : 1929.2.14.aspxshow_image.jsp?343523.jpg에 의해 생성 된 이미지가 포함되어 있습니까?

단순히 aspx 파일을 직접 말하면 HTML을 얻을 수 있습니다. 브라우저 기반 "웹 아카이브"기능이 수동으로 작동하는 방식으로 스크립팅을 통해 html 및 포함 된 이미지를 모두 저장하는 방법은 무엇입니까? 스크립트 (show_image.jsp - 예를 들어)이있는 경우 등

모든 팁, 튜토리얼에 대한 링크는

+0

(? show_image.jsp 343523.jpg), 당신은해야 할 수 있습니다 사이트 URL을 리퍼러로 지정하십시오. 이것은 브라우저가 전체 페이지를로드 할 때 실제로 발생합니다. – drew010

+0

이것은 당신을 위해 일할 수도 ... http://simplehtmldom.sourceforge.net/ –

+0

브라우저에서 액세스 할 수 있으면 액세스 할 수 있습니다. 마지막 스크립트에서 알 수있는 방법이 없습니다. 어쩌면 당신은 @ drew010이 지적한대로 리퍼러를 스푸핑 (spoof)해야 할 수도 있고 아니면 사용자 에이전트, 쿠키 또는 다른 요청 헤더를 설정해야 할 수도 있습니다. 그러나 확실히 스크립트 할 수 있습니다. –

답변

0

. 당신이 당신이 그렇게 이미지를 점점만큼 쉬운 것입니다 쿠키 및 리퍼러를 설정합니다 수행 할 때 직접 당신이 스크립트를 호출 할 수 있습니다 의심

agent.get(image_url).save_as 'local_filename.jpg' 
+0

덕분에 더 많은 옵션이 열렸습니다! –

0

... 감사 간단한 리퍼러 체크를하고 작성하여 당신이 그것을 해결할 수 있습니다, 당신의 PHP (또는 루비)하는 방식으로 스크레이퍼는 GET을하기 전에 참조 페이지를 설정할 수 있도록 : 당신은 아마 루비의 웹 사이트를 긁어 기계화 사용해야

curl --referer http://www.example.com http://www.example.com/show_image.jsp?bar.jpg 
+0

referer 아이디어는 좋은 아이디어이지만 작동하지 않습니다. 이미지의 ID 번호도 각 재로드마다 바뀝니다. ASPX 페이지와 함께 동적으로 생성되고 아마도 한 번만로드 될 것으로 생각됩니다. 그래서 일부 어떻게 aspx 페이지를 호출하고 그것과 함께 이미지를 잡아 ...하지만 시도해 주셔서 감사합니다! –

관련 문제