Facebook 크롤러

콘텐츠는 웹페이지의 형식으로 Facebook에 가장 많이 공유됩니다. 사용자가 처음 링크를 공유하면 Facebook 크롤러에서 해당 URL의 HTML을 스크랩하여, 제목, 설명 및 썸네일 이미지와 같은 Facebook의 콘텐츠에 대한 정보를 수집, 캐시 및 표시합니다. Facebook에서 웹페이지를 직접 공유하는 방법 외에도 웹페이지에서 크롤을 트리거하는 다른 방법이 있습니다. 예를 들어 웹페이지에 Facebook 소셜 플러그인을 넣으면 크롤러가 웹페이지를 스크랩할 수 있습니다.

크롤러 식별

Facebook 크롤러는 다음 사용자 에이전트 문자열 중 하나로 식별할 수 있습니다.

facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

또는

facebookexternalhit/1.1

크롤러 액세스

Facebook 크롤러는 올바르게 콘텐츠를 스크랩하여 공유하기 위해 콘텐츠에 액세스해야 합니다. Facebook 크롤러가 페이지를 인식할 수 있어야 합니다. 로그인해야 하거나 콘텐츠에 대한 액세스를 제한해야 하는 경우, 화이트리스트에 Facebook 크롤러를 추가해야 합니다. 크롤러는 gzipdeflate 인코딩만 허용하므로 서버에서 적절한 인코딩을 사용하는지 확인하세요. 크롤러는 페이지의 첫 1MB만 스크랩합니다. 따라서 1MB 전에 오픈 그래프 속성을 입력해두어야 합니다.

스크랩 시 콘텐츠를 사용할 수 없는 경우, 공유 디버거를 통해 URL을 전달하거나 그래프 API를 사용하여 콘텐츠를 사용할 수 있게 되면 다시 스크랩을 실행할 수 있습니다.

다음 두 가지 방법으로 크롤러에 액세스 권한을 제공합니다.

  1. 위에 나열된 사용자 에이전트 문자열을 화이트리스트에 추가합니다. 이렇게 하면 유지 관리가 필요 없게 됩니다.
  2. 크롤러에서 사용하는 IP 주소를 화이트리스트에 추가합니다. 이렇게 하면 보안이 강화됩니다.

이 명령을 실행하여 크롤러에서 사용하는 IP 주소의 현재 리스트를 확보합니다.

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

그러면 자주 변경되는 IP 주소 리스트가 반환됩니다.

# For example only - over 100 in total
31.13.24.0/21 
66.220.144.0/20    
2401:db00::/32  
2620:0:1c00::/40  
2a03:2880::/32 

합리적인 대기 시간 보장

크롤링할 URL에서 참조되는 리소스를 몇 초 이내의 합당한 시간 내에 크롤러에서 검색할 수 있도록 해야 합니다. 크롤러에서 이 작업을 수행할 수 없으면 Facebook에서 리소스를 표시할 수 없습니다.

크롤러 사용 제한

페이지와 개체의 레이블을 지정하여 Facebook의 크롤러가 페이지와 개체에 새 콘텐츠가 있는지 확인하기 위해 대기하는 시간을 변경할 수 있습니다. 크롤러가 너무 과도하게 작업을 수행하는 경우 og:ttl 개체 속성을 사용하여 크롤러 액세스를 제한합니다.

Facebot 크롤러

2014년 5월 28일부터 다음 사용자 에이전트 문자열이 포함된 크롤러도 확인할 수 있습니다.

Facebot

Facebot은 광고 성과를 향상할 수 있도록 돕는 Facebook의 웹 크롤링 로봇입니다. Facebot은 규정에 따라 작동하도록 디자인되었습니다. 업계 규정에 따라 최대 몇 초마다 1회만 웹 서버에 액세스하며 개발자가 지정한 robots.txt 설정을 우선합니다.

Facebot은 서버의 robots.txt 파일에 대한 변경 내용을 하루에 몇 차례만 확인하므로 업데이트를 즉시 인식하지 못할 수 있습니다.