이 사이트를 미러링할 때 wget이 모든 페이지를 가져오지 못하는 이유는 무엇입니까?

이 사이트를 미러링할 때 wget이 모든 페이지를 가져오지 못하는 이유는 무엇입니까?

다음 웹사이트를 완전히 미러링하고 싶습니다.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그렇지만.

답변2

이미 언급했듯이 wget은 클라이언트 측 JavaScript 코드를 사용하는 페이지를 생성할 수 없습니다. Python 프로그래밍의 기본을 알고 있다면 Python 라이브러리를 사용하는 것이 좋습니다.긁힌웹사이트 크롤링을 위해셀렌, 외부 브라우저를 사용하여 동적 페이지를 생성할 수 있습니다. 아주 적은 양의 Python 코드로 이 모든 작업을 수행할 수 있습니다. 예를 들어 참조 코드 조각 모음.

관련 정보