Как отразить страницы Википедии с помощью команды 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...: Отказано в доступе. Повторная попытка.
По крайней мере, это еще один шаг в правильном направлении. Я должен упомянуть, что, кажется, существует какое-то табу, связанное с темой использования агента-использователя. Ни один из сайтов, которые я исследовал, не предоставляет требуемую информацию в предварительно упакованном виде. Я предполагаю, что это потому, что они могут получить уведомление об удалении или что-то в этом роде. Я попробую еще раз в ближайшее время и отредактирую свой ответ, если я приблизился к цели.