2013-10-08 5 views
0

웹 크롤러를 작성 중이며 검색 한 페이지에 #! URL이 표시되면 Google이 수행하는 작업을 수행하려고합니다. URL에 #! Google은 페이지를 가져오고 색인을 생성 할 페이지 목록에 추가하지만 #을 볼 때 특별한 기능을 수행합니다! Google's "Getting started with Ajax crawling" document.에 설명 된대로웹 크롤러 작성하기 - #가 표시 될 때 Google이 수행하는 작업을 에뮬레이트하려면 어떻게해야합니까? URL에?

구글, 그것은 URL을 수정 #! 포함 된 URL을보고 수정 된 URL에 대한 HTTP GET을 수행

, 그것은 그 안에 #! (보다는이있는 URL을 검색 한 것처럼 다음 인덱스 검색된 페이지 실제로 검색 한 URL). 나는 그것이하는 변형을 모방하려고 노력하고있다. 완전히 기술되지는 않았다.

참조 페이지는 Google이 URL을 수정하는 방법을 부분적으로 설명하고 웹 사이트 작성자에게 원래 URL이 무엇인지 알 수 있고 #! URL 아래 색인 생성하려는 데이터를 반환 할 수 있도록 변환을 역전시키는 방법을 알려줍니다. 해당 페이지는 말한다 한 가지입니다 Note: The crawler escapes certain characters in the fragment during the transformation. To retrieve the original fragment, make sure to unescape all %XX characters in the fragment. More specifically, %26 should become &, %20 should become a space, %23 should become #, and %25 should become %, and so on.

언급 "변환은"?_escaped_fragment=으로 #!을 대체하고 #! 다음 텍스트에서 일부 특수 문자를 탈출하는 것입니다. 이 텍스트는 웹 사이트 작성자에게 수정 된 URL의 텍스트에서 % XX을 이스케이프 처리하지 않고 (부분적으로) 역방향으로 바꾼다는 의미로 ?_escaped_fragment=을 따른다. 문제는 내 크롤러가 Google이 요청하는 것과 동일한 대체 URL을 요청할 수 있도록 이스케이프 할 특수 문자를 어떻게 알 수 있습니까?

인용 된 단락에서 Google은 탈주 할 항목을 나열하지만 끝에있는 "등등"은 이스케이프 된 문자의 전체 목록이 더 길다는 것을 나타내지 만 완전히 설명되지는 않습니다.

이론상 모든 문자 (문자 포함)는 % XX로 이스케이프 될 수 있지만 모든 웹 사이트에서 올바르게 처리 할 수있는 가능성은 높지 않습니다. Google이 내게 될 문자가 무엇인지 알아 내 크롤러가 Google과 동일한 URL을 요청할 수 있습니까?

(들어오는 URL을 기록한 웹 사이트를 관리하고 Google에서 크롤링 할 수있는 경우 #! 다음에 특수 문자가있는 URL이 많은 페이지를 만들 수 있습니다. ?_escaped_fragment_=이있는 URL을보고 싶습니다. 그러나 답변을 얻기 위해 다른 가짜 웹 사이트를 설정해야합니까?)

답변

0

어떤 문자가 이스케이프되는지에 대한 자세한 내용은이 문서에 나와 있습니다.

The full "Ajax crawling" specification

다른 사람들이 필요로 할 때를 대비하여이 질문을 남깁니다. 그 사양을 찾아라.