Как на самом деле скачать какой-нибудь сайт wget-ом?

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

Аватара пользователя
жучара
Сообщения: 754
ОС: астралинукс

Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение жучара »

Друзья! Сайт- не сайт, но определённое содержимое нужно. Вот сайт с шахматными задачами

http://chessproblem.ru/

Каждая задача- суть ссылка вида

http://chessproblem.ru/id<№ задачи>

Например, http://chessproblem.ru/id6503, http://chessproblem.ru/id26025

И вот мне нужно все эти файлики скачать. Качаю поэтому весь сайт. Качается, конечно, немного лишнего, ну да бог с ним:

wget -r -k -l 7 -p -E -nc http://chessproblem.ru/ > wgetdst.txt 2>&1

И у меня появилась папка chessproblem.ru в которой много-много (несколько тысяч) файлов вида id<№задачи>.html. Например, id10269.html, id10270.html и так далее.

Но почему-то все задачи-файлы не скачались. Например, задача № 5832.

http://chessproblem.ru/id5832

То есть среди скачанных отсутствует файл id5832.html

Можно её скачать? Можно. Только отдельно

Shell

$ wget -E http://chessproblem.ru/id5832
--2020-12-13 21:17:49-- http://chessproblem.ru/id5832
Распознаётся chessproblem.ru (chessproblem.ru)… 185.26.98.232
Подключение к chessproblem.ru (chessproblem.ru)|185.26.98.232|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/html]
Сохранение в: «id5832.html»

id5832.html [ <=> ] 15,17K --.-KB/s in 0,08s

2020-12-13 21:17:49 (189 KB/s) - «id5832.html» сохранён [15529]

$
То есть поодиночке файлы скачиваются, а скопом -нет.

А вот и файл wgetdst.txt (результат скачивания всего сайта), там упоминание о файле id5832(.html) отсутствует напрочь. Если скопом весь сайт скачивать, то некоторые файлы почему-то пропускаются. ЧЯДНТ? Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4812
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение SLEDopit »

Теоретически, недостающий файл может быть глубже 7 уровня вложенности (как в увас указано -l 7).

PS. Если нужны именно задачи, то может проще их просто циклом выкачать?

Shell

for (( id=1; id<=5; id++ )); do wget -E "http://chessproblem.ru/id$id"; done
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение s.xbatob »

Выставляй заголовки http-agent и referer. Не помню как это в опциях wget делается, но помогает
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 754
ОС: астралинукс

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение жучара »

SLEDopit писал(а): 13.12.2020 19:45 Теоретически, недостающий файл может быть глубже 7 уровня вложенности (как в увас указано -l 7).

PS. Если нужны именно задачи, то может проще их просто циклом выкачать?

Shell

for (( id=1; id<=5; id++ )); do wget -E "http://chessproblem.ru/id$id"; done
Мне тяжело понять, как может, например, файл http://chessproblem.ru/id26025 иметь один уровень вложенности, а файл http://chessproblem.ru/id5832 другой уровень вложенности. Они же вроде как одинаковые, нет? Но спорить не буду, ибо ничего в этом не понимаю.
...эх, если бы я знал максимальный номер задачи! Запросто допускаю, что в нумерации могут быть дырки.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4812
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение SLEDopit »

жучара писал(а): 13.12.2020 20:29 Мне тяжело понять, как может, например, файл http://chessproblem.ru/id26025 иметь один уровень вложенности, а файл http://chessproblem.ru/id5832 другой уровень вложенности. Они же вроде как одинаковые, нет?
Легко. Я вижу там есть 2219 страниц с задачами. На первой странице доступны переходы на 1-7, 1100 и последнюю. Это будет первый уровень вложенности. С 7 доступны переходы на 1-13, 1113 и последнюю. Это будет второй уровень. И т.д. Т.е. там будет куча страниц до которых к 7 уровню wget не доберется.

Как вариант, можно просто уровень вложенности увеличить. До 100, скажем. Этого должно хватить, по идее. Плюс минус.
s.xbatob писал: 13.12.2020 19:48 Выставляй заголовки http-agent и referer. Не помню как это в опциях wget делается, но помогает

Shell

--referer="http://www.google.com" --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
algri14
Сообщения: 996
ОС: Mageia 5.1 & 8 x86_64, KDE

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение algri14 »

жучара, по wget не подскажу, но как вариант есть httraqt — создание копий веб-сайтов для их последующего просмотра.
Может быть действует лучше, чем wget, попробуйте...
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 754
ОС: астралинукс

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение жучара »

Всё оказалось проще, чем я думал. Итак, имеем страничку (например).
http://chessproblem.ru/mate4/537
Если мы её качнём и распарсим на предмет "Задача №" (grep, cut) и прочая, то получим 12 номеров задач. А если качнём все такие странички и все их распарсим, то получим номера ВСЕХ задач (а потом в файл их и в цикле оттуда выдёргивать для wgeta). А номера всех страничек видно. Вот wget-ом мы их качнём, и распарсим. И всё. Так, а мне ещё до кучи нужны были задачи только с матом (не с выигрышем или с ничьёй). Но я уже всё это сделал.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 754
ОС: астралинукс

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение жучара »

SLEDopit писал(а): 13.12.2020 20:59 Как вариант, можно просто уровень вложенности увеличить. До 100, скажем. Этого должно хватить, по идее. Плюс минус.
При уровне 100 качается 13134 файла, при уровне 101 качается 13660 файлов, при уровне 102 качается 12968 файлов.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
XoFfiCEr
Сообщения: 65
ОС: Linux Mint 19

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение XoFfiCEr »

algri14 писал: 13.12.2020 21:07 жучара, по wget не подскажу, но как вариант есть httraqt — создание копий веб-сайтов для их последующего просмотра.
Может быть действует лучше, чем wget, попробуйте...
Если сайт получает данные из БД из мускуля например то корректно работать не будет.
Оффтоп: кто играет в шахматы на lichess?
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 754
ОС: астралинукс

Re: Как на самом деле скачать какой-нибудь сайт wget-ом?

Сообщение жучара »

XoFfiCEr писал: 07.01.2022 03:22
algri14 писал: 13.12.2020 21:07 жучара, по wget не подскажу, но как вариант есть httraqt — создание копий веб-сайтов для их последующего просмотра.
Может быть действует лучше, чем wget, попробуйте...
Если сайт получает данные из БД из мускуля например то корректно работать не будет.
Оффтоп: кто играет в шахматы на lichess?
я играю там инкогнито.
...похоже, с этим сайтом работать не получится
https://chessproblem.ru/
оне не предоставляют правильных ответов на задачи. Буду пробовать работать с его копией в архиве интернета.
Я просто читаю маны.
Спасибо сказали: