Я хочу полностью отразить следующий веб-сайт: 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 пишутся с помощью следующей функции javascript:

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 не может обнаружить якорные теги, которые генерируются динамически.

2 ответа2

1

Javascript отображается браузером. wget делает именно то, что должен, извлекая контент. Браузеры изначально делают то же самое. Они получают контент именно так, как вы разместили выше. Но затем он рендерит часть Javascript и создает ссылки. wget не может этого сделать. Так что нет, вы не можете получить ссылки, которые генерируются динамически, используя только wget. Вы можете попробовать что-то вроде PhantomJS, хотя.

0

Как уже говорилось, wget не может генерировать страницы, которые используют клиентский код JavaScript. Если вы знакомы с основами программирования на Python, я бы порекомендовал использовать библиотеку Python Scrapy для сканирования веб-сайта вместе с Selenium, который может использовать внешний браузер для создания динамических страниц. Вы можете сделать все это с небольшим количеством кода Python. Смотрите, например, Code Snippets Collection.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .