В Linux, как я могу получить URL-адрес и получить его содержимое в переменной в сценарии оболочки?
Как получить содержимое веб-страницы в переменной оболочки?
Ответы (7)
Вы можете использовать команду wget
для загрузки страницы и чтения ее в переменную как:
content=$(wget google.com -q -O -)
echo $content
Мы используем опцию -O
для wget
, которая позволяет нам указать имя файла, в который wget
выгружает содержимое страницы. Мы указываем -
для вывода дампа на стандартный вывод и собираем его в переменную content
. Вы можете добавить параметр -q
, чтобы отключить вывод wget.
Для этого можно использовать команду curl, а также:
content=$(curl -L google.com)
echo $content
Нам нужно использовать параметр -L
, так как запрашиваемая страница могла быть перемещена. В этом случае нам нужно получить страницу из нового местоположения. В этом нам помогает опция -L
или --location
.
src
правильного элемента, а затем загрузить эту страницу. Если вы устанавливаете tq, эта команда должна сделать это: curl -s http://ww1.watchop.io/manga2/read/one-piece/1/4 | tq -j -a src "#imgholder a img" | xargs wget
- person pyrocrasty; 06.02.2017
convert_links = on
с опцией -O-
. Вылетает с ошибкой -k can be used together with -O only if outputting to a regular file.
. Это ожидается?
- person Prasad Bonthu; 17.07.2018
Есть много способов получить страницу из командной строки... но это также зависит от того, нужен ли вам источник кода или сама страница:
Если вам нужен исходный код:
с завитком:
curl $url
с wget:
wget -O - $url
но если вы хотите получить то, что видите в браузере, lynx может быть полезен:
lynx -dump $url
Я думаю, что вы можете найти так много решений для этой маленькой проблемы, возможно, вам следует прочитать все справочные страницы для этих команд. И не забудьте заменить $url
на свой URL :)
Удачи :)
Есть команда wget
или curl
.
Теперь вы можете использовать файл, загруженный с помощью wget. Или вы можете обрабатывать поток с помощью curl.
Ресурсы:
Вы можете использовать curl
или wget
для получения необработанных данных, или вы можете использовать w3m -dump
для красивого текстового представления веб-страницы.
$ foo=$(w3m -dump http://www.example.com/); echo $foo
You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser. These domain names are reserved for use in documentation and are not available for registration. See RFC 2606, Section 3.
Если у вас установлен LWP, он предоставляет двоичный файл с простым названием "GET".
$ GET http://example.com <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>Example Web Page</TITLE> </HEAD> <body> <p>You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser.</p> <p>These domain names are reserved for use in documentation and are not available for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 2606</a>, Section 3.</p> </BODY> </HTML>
wget -O-
, curl
и lynx -source
ведут себя аналогично.
Ни curl, ни wget, ни ncat, ничего? Используйте 1_:
$ content=$(telnet localhost 80)
GET / HTTP/1.1
Host: localhost
Connection: close
Connection closed by foreign host.
$ echo $content
HTTP/1.1 200 OK Date: Mon, 22 Mar 2021 12:45:02 GMT Server:
Apache/2.4.46 (Fedora) OpenSSL/1.1.1j Last-Modified: Mon, 31 Dec 2018
15:56:45 GMT ETag: "a4-57e5375ad21bd" Accept-Ranges: bytes
Content-Length: 164 Connection: close Content-Type: text/html;
charset=UTF-8 Success! 192.168.1.1