Как отразить страницы Википедии с помощью команды wget linux?

Я хочу отразить страницы Википедии командой Linux wget. Я использовал эту команду

wget --mirror -p --convert-links -P ./folder-mirror /https://en.wikipedia.org/wiki/Portal:Contents/A–Z_index

но я получаю только этот файл robots.txt

3 ответа

Решение

Исключение робота включено по умолчанию в wget чтобы люди не были придурками и рекурсивно сожрали чужую веб-страницу и их пропускную способность.

Вы можете отключить его в своем .wgetrc файл, или вы используете Wget's -e переключаться как: -e robots=off

Это не означает, что в Википедии нет дополнительных безопасных средств защиты, чтобы гарантировать, что ваш wget не рекурсивно загружает все, но он не позволит wget соблюдать robots.txt и meta.

Если вы все еще врезались в стену, то, возможно, возитесь с пользовательским агентом или чем-то в этом роде.

Не делай этого. Это создает огромную нагрузку на веб-серверы Википедии, и ваш IP будет заблокирован.

Если вы хотите зеркало Википедии, загрузите дамп их базы данных с https://dumps.wikimedia.org/. Самая последняя полная версия англоязычной вики на данный момент доступна по адресу:

https://dumps.wikimedia.org/enwiki/20160407/

Если вам нужны данные только с определенных страниц, рассмотрите возможность использования API MediaWiki.

Что ж, люди здесь частично помогли, упомянув, как бороться с robots.txt. Вам также нужно будет правильно настроить свой пользовательский агент. Кажется, есть формальный способ сделать это, чтобы Викимедиа знала, кто вы, используя строку агента использования, и это предотвратит попадание вас в черный список за то, что вы вытащили слишком много сразу. Как они уже упоминали, переполнение серверов запросами никому не нужно и может привести к бану вашего IP.

Мой вариант использования может отличаться от вашего: я просто пытаюсь получить отдельные файлы .html Пока у меня есть это, которое эмулирует самый последний Firefox:

      wget -e robots=off --span-hosts --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0" https://en.wikipedia.org/wiki/Wikipedia:Stackexchange_and_Reddit

Но, к сожалению, это вывод:

--2022-04-10 04:09:15-- https://en.wikipedia.org/wiki/Wikipedia:Stackexchange_and_Reddit Разрешение en.wikipedia.org (en.wikipedia.org)... 2620:0:863:ed1a::1, 198.35.26.96 Подключение к en.wikipedia.org (en.wikipedia.org)|2620:0:863:ed1a::1|:443... не удалось: Отказано в доступе. Не удалось подключиться к en.wikipedia.org (en.wikipedia.org)|198.35.26.96|:443...: Отказано в доступе. Повторная попытка.

По крайней мере, это еще один шаг в правильном направлении. Я должен упомянуть, что, кажется, существует какое-то табу, связанное с темой использования агента-использователя. Ни один из сайтов, которые я исследовал, не предоставляет требуемую информацию в предварительно упакованном виде. Я предполагаю, что это потому, что они могут получить уведомление об удалении или что-то в этом роде. Я попробую еще раз в ближайшее время и отредактирую свой ответ, если я приблизился к цели.

Другие вопросы по тегам