다음 웹사이트를 완전히 미러링하고 싶습니다.http://tinaztitiz.com
다음 wget 명령을 사용합니다.
wget -m http://tinaztitiz.com
웹 사이트는 사용자 정의 CMS이며 다음과 같은 URL 형식을 가진 많은 페이지를 포함합니다.
http://tinaztitiz.com/yazi.php?id=943
http://tinaztitiz.com/yazi.php?id=762
이상하게도 wget은 이러한 페이지 중 일부를 가져오지만 전부는 가져오지 않습니다. 그 이유가 무엇인지 궁금합니다.
참고: robots.txt로 인한 제한은 없습니다.
업데이트:
웹사이트의 소스 코드를 살펴보면 wget에 의해 감지 및 크롤링되지 않는 페이지에는 공통 속성이 있다는 것을 알았습니다. 앵커 URL은 다음 자바스크립트 함수로 작성됩니다.
function yazilar()
{
var ab = '</a><br class=\"hide\" />';
var aa = '<a class=' + '\"nav sub\" href=\"kategori.php?id=';
var ac = '';
var arr = new Array();
arr[0] = '12\">'+ac+' Belâgat';
arr[1] = '15\">'+ac+' Bilim ve Teknoloji';
//...
maxi = 14;
for(i=0;i<maxi;i++) {
a = aa + arr[i] + ab;
document.writeln(a);
}
}
따라서 wget은 동적으로 생성된 앵커 태그를 감지할 수 없는 것 같습니다.
답변1
Javascript는 브라우저에 의해 렌더링됩니다. wget
콘텐츠를 가져오는 등 해야 할 일을 정확히 수행합니다. 브라우저는 처음에 동일한 작업을 수행합니다. 그들은 당신이 위에 게시한 것과 똑같은 내용을 얻습니다. 그런 다음 부품을 렌더링 Javascript
하고 링크를 구축합니다. wget
그렇게 할 수 없습니다. 따라서 아니요. wget만 사용하면 동적으로 생성된 링크를 얻을 수 없습니다. 다음과 같은 것을 시도해 볼 수 있습니다.PhantomJS그렇지만.