Вы можете использовать wget для загрузки файлов и страниц программно. Но давайте перейдем на следующий уровень и будем использовать wget с прокси-сервером, чтобы очищать Интернет без блокировки.
Wget очень похож на cURL. Он позволяет отправлять команды с помощью терминала и загружать файлы с URL-адреса. Это означает, что вы можете запланировать автоматическое выполнение этой команды каждый день и никогда больше не беспокоиться об этом.
Но если вы хотите сделать это по-настоящему автоматизированным, вам нужен прокси. Очень легко быть заблокированным, когда вы очищаете сайты. И использование прокси-серверов – быстрый способ предотвратить это. Поэтому сегодня мы рассмотрим, как вы можете использовать wget, как использовать прокси с ним, как его установить, как справиться с наиболее распространенными проблемами и многое другое.
Самое приятное, что это интерактивное руководство, так что вы можете следить и тестировать команды, используя сайт, на который мы ссылаемся.
Давайте начнем!
Командная строка прокси-сервера Wget
Команда wget имеет простой синтаксис. Это
wget [options] [url]
Когда дело доходит до использования прокси wget, у вас есть два основных варианта. Вы можете передать данные прокси в своей команде в качестве опции или сохранить данные прокси глобально, чтобы вам не нужно было запускать их каждый раз.
Но прежде чем мы рассмотрим сам wget в прокси, давайте посмотрим, как вы можете использовать wget в целом. Выполните эту команду:
wget -V
И если у вас не установлен wget, вы увидите сообщение об ошибке. Давайте сначала исправим это.
Команда Wget не найдена
В некоторых операционных системах wget установлен по умолчанию. В частности, большинство дистрибутивов Linux. Но если вы используете macOS или Windows, вы, вероятно, увидите ошибку при первой попытке запустить wget. Это просто означает, что он у вас не установлен. Однако это легко исправить.
Macbook Wget и Wget в macOS
Самый простой способ установить wget на Mac – использовать homebrew. Вы можете запустить эту команду в своем терминале:
brew install wget
И это все. Есть и другие варианты на случай, если у вас нет homebrew. Вы можете просто загрузить библиотеку (даже используя cURL!) и установить ее.
Wget в Windows
Вы можете загрузить wget для Windows непосредственно из проекта GNU. Затем вы можете просто открыть программу установки и следовать инструкциям на экране. Теперь вы готовы использовать wget. Но стоит ли? Почему бы не использовать cURL? Давайте посмотрим, какой из них является лучшим вариантом для вас.
Wget против cURL
Короткая версия этого сравнения заключается в том, что wget проще в использовании (по умолчанию включено больше опций), в то время как cURL более гибкий, позволяющий использовать множество различных протоколов и типов соединений.
Что касается реальных возможностей, cURL может использовать 26 различных протоколов, в то время как wget использует только базовые протоколы HTTP, HTTPS и FTP. Вы можете использовать аутентификацию прокси-сервера wget, а также аутентификацию прокси-сервера cURL. Но wget имеет более простые типы соединений, и вы ограничены его ограничениями.
В целом, wget отлично работает для простой очистки. Вы можете получать страницы, переходить по перенаправлениям, переходить по ссылкам. С другой стороны, cURL может выполнять все это и некоторые другие задачи благодаря своей гибкости.
Теперь давайте посмотрим несколько реальных примеров команд wget и как вы можете использовать их для получения страниц.
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
Wget использует переменные http_proxy и https_proxy. Таким образом, вы можете редактировать их постоянно и изменять способ выполнения всех команд wget. Имейте в виду, что это влияет и на выполнение других команд, таких как cURL.
Есть несколько файлов, которые просматривает ваша система (в таком порядке).:
- ~/.wgetrc: файл запуска пользователя.
- /etc/wgetrc: Глобальный загрузочный файл.
- ~/.bash_profile: Пользовательская среда.
- /etc/profile: Общесистемная среда.
Таким образом, ваша система просматривает файл ~/.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 следует за перенаправлениями. Например, выполните эту команду:
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, удаляя любые дальнейшие перенаправления.
Wget игнорирует сертификат
Иногда нам нужно переключаться между http и https, или нам нужно очистить страницы с истекшими сертификатами. Если вы попытаетесь загрузить эти страницы в своем браузере, вы получите ошибки безопасности, и на то есть веская причина. Вы смешиваете обычный текстовый контент с зашифрованным контентом или, возможно, посещаете страницу с просроченными SSL-сертификатами.
Но когда дело доходит до очистки веб-страниц, иногда вы просто хотите заставить его работать. Вы можете объединить команду прокси-сервера wget с этой командой, чтобы игнорировать ошибки сертификата с помощью wget:
wget --no-check-certificate https://google.com
Это позволяет игнорировать ошибки сертификата и по-прежнему видеть содержимое страницы.
Wget –no-proxy
Возможно, вы сохранили информацию о прокси, но хотите отключить ее только для определенной команды. Больше не бойтесь, настройка “без прокси” здесь, чтобы помочь вам. Вы можете использовать эту команду для перезаписи любых данных прокси, например:
wget --no-proxy https://google.com
Конечно, вы всегда можете отредактировать файлы настроек на случай, если захотите сделать это изменение постоянным. Но это должно быть быстрое решение.
Основные команды Wget
Вот простой список команд wget, чтобы вы могли поиграть со своим wget proxy scraper.
- задайте имя выходного файла: wget -o [имя файла] [url]
Команда -o является псевдонимом для –output-file=name.
Таким образом, вы можете сохранить файл с пользовательским именем, используя эту команду:
wget -v -o test.html https://google.com
- сохранить в путь: wget -P [path] [url]
Вы можете сохранять свои файлы по пользовательскому пути, используя опцию -P. С его помощью вы можете запустить свой прокси-сервер wget и сохранить все файлы с сайта в определенной папке, например:
wget -v -P path https://google.com
- установите агент пользователя: wget –user-agent=[name] [url]
Пользовательский агент – еще один красноречивый признак роботов. Некоторые из них даже не утруждают себя отправкой действительного пользовательского агента. Такое поведение очень подозрительно, поскольку большинство браузеров отправляют эту информацию.
wget --user-agent=Safari https://google.com
- конвертировать ссылки: wget –convert-links [url]
Вы можете загружать файлы и преобразовывать все ссылки из фиксированных ссылок с 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 -i links.txt
Еще одна удобная функция для очистки веб-страниц с помощью wget – загрузка страниц из списка. Вы можете создать простой текстовый файл, добавить ссылки по одной на строку, а затем использовать эту команду:
wget -i links.txt
С его помощью wget загружает каждую из ссылок в этом списке. Это может быть удобно для массовых загрузок.
Заключение
Сегодня вы узнали, как можно использовать wget proxy для простой загрузки файлов и для очистки веб-страниц. Мы надеемся, что вам понравилось, и увидимся в следующий раз!