2013-10-22 5 views
0

robots.txt를 존중하는 크롤러를 작성하고 싶습니다. 불행히도 헤드리스 브라우저는 robots.txt를 지원하지 않는 것 같습니다. PhantomJS는 사람들이 PhantomJS에서 토론을 시작한 후 답변을 얻었습니다. PhantomJS는 크롤러가 아닌 브라우저입니다. 스크립트에서 사용하면 스크립트는 robots.txt를 존중해야합니다.헤드리스 브라우저가 robots.txt를 조심해야합니까?

이 정보가 맞습니까? 나는 robots.txt가 HTTP 요청 및 주요 URL뿐만 아니라 존중되어야한다고 생각했습니다.

그래서 질문 : robots.txt에서 기본 URL을 확인하는 것으로 충분합니까?

답변

2

아니요, 기본 URL에 robots.txt 만 확인하는 것으로 충분하지 않습니다. 예를 들어 사이트에서 봇이 HTML 페이지를 크롤링 할 수는 있지만 이미지에 액세스하지 못하게 할 수 있습니다.

문제가있는 것 아닌가요? 필자가 PhantomJS에 웹 페이지 방문을 요청하면 페이지 내용뿐만 아니라 참조 된 스크립트, 이미지, 스타일 시트 등을 다운로드하게됩니다. 따라서 스크립트는 기본 URL을 크롤링 할 수 있다는 것을 확인했지만 웹 페이지가 참조하는 다른 URL을 알 수 없습니다.

PhantomJS API를보고 요청하는 URL을 필터링 할 수있는 고리가 있는지 확인하는 것이 좋습니다. 예를 들어 PhantomJS가 이미지를 다운로드하기 전에, 필터는 필터를 호출하여 괜찮은지 확인합니다. 그런 기능이 존재하는지 모르겠다. 그렇다면 로봇의 기능을 점검 할 수있다.

PhantomJS가 요청하는 URL을 필터링하는 스크립트가 없는데, 크롤러를 기반으로하는 다른 것을 찾는 것이 좋습니다. 그렇지 않으면 robots.txt에 의해 크롤러에게 특별히 금지 된 파일에 크롤러가 액세스 할 위험이 있습니다.

+0

이러한 함수는 존재합니다. page.onResourceRequested는 두 개의 인수를 취하는 함수로 설정할 수 있습니다. 두번째는'abort()'메쏘드가있는 네트워크 요청 객체입니다. – Collin

관련 문제