Вы можете использовать wget для загрузки файлов и страниц программно. Но давайте перейдем на следующий уровень и будем использовать wget с прокси-сервером, чтобы очищать Интернет без блокировки.
Wget очень похож на cURL. Он позволяет отправлять команды с помощью терминала и загружать файлы с URL-адреса. Это означает, что вы можете запланировать автоматическое выполнение этой команды каждый день и никогда больше не беспокоиться об этом.
Но если вы хотите сделать это по-настоящему автоматизированным, вам нужен прокси. Очень легко быть заблокированным, когда вы очищаете сайты. И использование прокси-серверов — быстрый способ предотвратить это. Поэтому сегодня мы рассмотрим, как вы можете использовать wget, как использовать прокси с ним, как его установить, как справиться с наиболее распространенными проблемами и многое другое.
Самое приятное, что это интерактивное руководство, так что вы можете следить и тестировать команды, используя сайт, на который мы ссылаемся.
Давайте начнем!
Команда wget имеет простой синтаксис. Это
wget [options] [url]
Когда дело доходит до использования прокси wget, у вас есть два основных варианта. Вы можете передать данные прокси в своей команде в качестве опции или сохранить данные прокси глобально, чтобы вам не нужно было запускать их каждый раз.
Но прежде чем мы рассмотрим сам wget в прокси, давайте посмотрим, как вы можете использовать wget в целом. Выполните эту команду:
wget -V
И если у вас не установлен wget, вы увидите сообщение об ошибке. Давайте сначала исправим это.
В некоторых операционных системах wget установлен по умолчанию. В частности, большинство дистрибутивов Linux. Но если вы используете macOS или Windows, вы, вероятно, увидите ошибку при первой попытке запустить wget. Это просто означает, что он у вас не установлен. Однако это легко исправить.
Самый простой способ установить wget на Mac — использовать homebrew. Вы можете запустить эту команду в своем терминале:
brew install wget
И это все. Есть и другие варианты на случай, если у вас нет homebrew. Вы можете просто загрузить библиотеку (даже используя cURL!) и установить ее.
Вы можете загрузить wget для Windows непосредственно из проекта GNU. Затем вы можете просто открыть программу установки и следовать инструкциям на экране. Теперь вы готовы использовать wget. Но стоит ли? Почему бы не использовать cURL? Давайте посмотрим, какой из них является лучшим вариантом для вас.
Короткая версия этого сравнения заключается в том, что wget проще в использовании (по умолчанию включено больше опций), в то время как cURL более гибкий, позволяющий использовать множество различных протоколов и типов соединений.
Что касается реальных возможностей, cURL может использовать 26 различных протоколов, в то время как wget использует только базовые протоколы HTTP, HTTPS и FTP. Вы можете использовать аутентификацию прокси-сервера wget, а также аутентификацию прокси-сервера cURL. Но wget имеет более простые типы соединений, и вы ограничены его ограничениями.
В целом, wget отлично работает для простой очистки. Вы можете получать страницы, переходить по перенаправлениям, переходить по ссылкам. С другой стороны, cURL может выполнять все это и некоторые другие задачи благодаря своей гибкости.
Теперь давайте посмотрим несколько реальных примеров команд wget и как вы можете использовать их для получения страниц.
Если вы играете с wget, даже с безобидными вызовами, вы можете быть заблокированы. Это потому, что владельцы сайтов не хотят иметь дело с веб-скребками, хотя они совершенно законны.
Самый простой способ проверить, является ли пользователь ботом, — это проверить его привычки к просмотру на вашем сайте. Таким образом, вы можете проверить посещенные страницы IP-адреса, а затем посмотреть, проверяют ли они слишком много страниц, делают ли они это одновременно или другие признаки того, что это может быть бот.
Но обратите внимание, насколько важным моментом для обнаружения пользователей является просмотр подключений, поступающих с одного и того же IP-адреса. Таким образом, вы можете использовать службу прокси-сервера IPRoyal, чтобы скрыть свой IP-адрес. Таким образом, владельцы веб-сайтов не смогут отследить, какие страницы вы посетили, поскольку при каждом посещении они будут видеть совершенно разные IP-адреса.
Как только вы зарегистрируетесь, перейдите в свой клиентский кабинет, и в нем вы сможете найти информацию о подключении:
Теперь вам просто нужно использовать эту информацию вместе с wget для подключения к прокси и скрыть свой IP-адрес. Вы можете сделать это, используя переменную http_proxy или https_proxy перед командой wget, например:
http_proxy=http://[username]:[password]@geo.iproyal.com:12321 wget -v http://ipv4.icanhazip.com/
Существуют и другие подобные подходы, такие как использование -e или даже псевдонима. Например, сохраните весь вызов прокси как псевдоним, затем вызовите его перед командой wget.
В общем, однострочные команды — отличный способ использовать прокси wget, если вы не хотите, чтобы это повлияло на всю вашу ОС. Вы получаете прокси-соединения только в текущем терминале, и все. Но если вы хотите сохранить эту информацию, вы можете это сделать.
Wget использует переменные http_proxy и https_proxy. Таким образом, вы можете редактировать их постоянно и изменять способ выполнения всех команд wget. Имейте в виду, что это влияет и на выполнение других команд, таких как cURL.
Есть несколько файлов, которые просматривает ваша система (в таком порядке).:
Таким образом, ваша система просматривает файл ~/.wgetrc. Если информация о прокси не задана, то он просматривает файл /etc/wgetrc. Затем он продолжает двигаться вниз по списку, пока не найдет эту информацию.
Вы можете редактировать любой из этих файлов и раскомментировать/добавить эти строки:
use_proxy=yes http_proxy=http://username:password@domain:port/ https_proxy=https://username:password@domain:port/ ftp_proxy=http://username:password@domain:port/
Для файлов .bash_profile и /etc /profile вам нужно будет использовать команду командной строки для настройки прокси, например:
export http_proxy=http://username:password@domain:port/ export https_proxy=https://username:password@domain:port/ export ftp_proxy=http://username:password@domain:port/
Замените имя пользователя/пароль/адрес/порт своей собственной информацией. Вот и все! Возможно, вам потребуется перезагрузить браузер терминала, но ваши следующие подключения будут использовать информацию о вашем прокси-сервере wget.
Это не проблема wget с прокси-сервером напрямую, но она связана с проблемами, с которыми вы столкнетесь. Один из наиболее полезных способов использования wget — следовать перенаправлениям, позволяя ему загружать файл в конце цепочки перенаправлений.
По умолчанию wget следует за перенаправлениями. Например, выполните эту команду:
wget -v http://google.com
И вы увидите что-то вроде этого в выходных данных:
And you’ll see something like this in the output: Resolving google.com (google.com)... Connecting to google.com (google.com)... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: http://www.google.com/ [following] Resolving www.google.com (www.google.com)... Connecting to www.google.com (www.google.com)... connected. HTTP request sent, awaiting response... 200 OK Saving to: ‘index.html’
Обратите внимание, что wget сначала пытается загрузить google.com , и он перенаправляется на www.google.com. Не проблема, wget немедленно следует по новому пути и загружает index.html. Если по какой-либо причине перенаправления wget у вас не работают, проверьте атрибут max_redirects, иногда он устанавливается равным 1, удаляя любые дальнейшие перенаправления.
Иногда нам нужно переключаться между http и https, или нам нужно очистить страницы с истекшими сертификатами. Если вы попытаетесь загрузить эти страницы в своем браузере, вы получите ошибки безопасности, и на то есть веская причина. Вы смешиваете обычный текстовый контент с зашифрованным контентом или, возможно, посещаете страницу с просроченными SSL-сертификатами.
Но когда дело доходит до очистки веб-страниц, иногда вы просто хотите заставить его работать. Вы можете объединить команду прокси-сервера wget с этой командой, чтобы игнорировать ошибки сертификата с помощью wget:
wget --no-check-certificate https://google.com
Это позволяет игнорировать ошибки сертификата и по-прежнему видеть содержимое страницы.
Возможно, вы сохранили информацию о прокси, но хотите отключить ее только для определенной команды. Больше не бойтесь, настройка «без прокси» здесь, чтобы помочь вам. Вы можете использовать эту команду для перезаписи любых данных прокси, например:
wget --no-proxy https://google.com
Конечно, вы всегда можете отредактировать файлы настроек на случай, если захотите сделать это изменение постоянным. Но это должно быть быстрое решение.
Вот простой список команд wget, чтобы вы могли поиграть со своим wget proxy scraper.
Команда -o является псевдонимом для –output-file=name.
Таким образом, вы можете сохранить файл с пользовательским именем, используя эту команду:
wget -v -o test.html https://google.com
Вы можете сохранять свои файлы по пользовательскому пути, используя опцию -P. С его помощью вы можете запустить свой прокси-сервер wget и сохранить все файлы с сайта в определенной папке, например:
wget -v -P path https://google.com
Пользовательский агент — еще один красноречивый признак роботов. Некоторые из них даже не утруждают себя отправкой действительного пользовательского агента. Такое поведение очень подозрительно, поскольку большинство браузеров отправляют эту информацию.
wget --user-agent=Safari https://google.com
Вы можете загружать файлы и преобразовывать все ссылки из фиксированных ссылок с URL-адреса в локальные ссылки по вашему локальному пути. Это особенно полезно, если вы хотите протестировать загружаемые файлы с помощью своего браузера.
wget --convert-links https://google.com
Вы можете увидеть это сообщение в конце вашего задания convert-links:
Converting links in index.html... 0-9 Converted links in 1 file in 0 seconds.
Это означает, что как только вы посетите index.html все прошлые ссылки будут ссылаться на соответствующие страницы на вашем сервере.
Еще одна удобная функция для очистки веб-страниц с помощью wget — загрузка страниц из списка. Вы можете создать простой текстовый файл, добавить ссылки по одной на строку, а затем использовать эту команду:
wget -i links.txt
С его помощью wget загружает каждую из ссылок в этом списке. Это может быть удобно для массовых загрузок.
Сегодня вы узнали, как можно использовать wget proxy для простой загрузки файлов и для очистки веб-страниц. Мы надеемся, что вам понравилось, и увидимся в следующий раз!