2011-09-18 2 views
4

Digg 및 Facebook과 같은 주요 웹 사이트에서 링크를 공유 할 때; 페이지의 주 이미지를 캡처하여 축소판을 만듭니다. 웹 페이지에서 이미지를 잡는 방법은 무엇입니까? 전체 페이지를로드 (예 : cURL)하고 구문 분석 (예 : preg_match)? 나에게이 방법은 느리고 신뢰할 수 없다. 그들은 더 실용적인 방법을 가지고 있습니까?주요 웹 사이트가 링크에서 축소판을 캡처하는 방법은 무엇입니까?

P. src 속성에 도달하기 위해 일부 부품 (예 : CSS 및 JS)을 건너 뛰고 페이지를 빠르게 크롤링하는 실용적인 방법이 있어야한다고 생각합니다. 어떤 생각?

+1

예, 그들은 cURL 또는 비슷한 것을 사용하여로드하지만, HTML 구문 분석기를 사용하여 이미지를 찾고 ('src' 속성 가져 오기) _not_ 정규 표현식을 사용합니다. – Bojangles

+0

페이지에서 이미지를 찾는 것보다 더 실용적인 방법으로 생각해 낼 수 있습니까? – Eric

+0

저는 cURL과 같은 전체 페이지를로드하는 대신 페이지를 크롤링하는보다 실제적인 방법을 생각했습니다. 이를 위해 CSS 및 Javascript 코드를로드 할 필요가 없습니다. – Googlebot

답변

2

그들은 페이지에서 이미지를 검색하여 서버에서 크기를 줄입니다. Reddit의 scraper code은 그들이하는 일을 잘 보여줍니다. Scraper class은이 문제를 해결하는 방법에 대한 좋은 아이디어를 줄 것입니다.

-1

페이지의 헤드에 포함 된 일부 사용

<link rel="image_src" href="yourimage.jpg" /> 

. http://www.labnol.org/internet/design/set-thumbnail-images-for-web-pages/6482/

페이스 북이

<meta property="og:image" content="thumbnail_image" /> 

참조를 사용하여 참조 : http://developers.facebook.com/docs/share/#basic-tags

+0

다음은 개발자에게 권장되는 사항입니다. digg에서 거의 모든 링크를 공유하면; 엄지 손톱 (표준 사진뿐만 아니라)을 잡을 수 있습니다. – Googlebot

0

그들은 일반적으로 webkit2png 같은 도구를 사용합니다.

+0

이 도구는 전체 페이지의 스크린 샷을 만듭니다. 이는 페이지 자체가 아닌 페이지의 이미지에서 생성 된 미리보기 이미지와 완전히 다릅니다. – Googlebot

1

JohnD의 답변에 따르면 Reddit은 Python 솔루션의 일부로 embed.ly을 사용합니다. 실제로 embed.ly는 이미지를 찾는 데 어려움을 겪습니다. 10,000 개 요청 당 무료입니다.

관련 문제