2010-09-18 2 views

ответ

133

Вы можете использовать wget команду, чтобы загрузить страницу и прочитать ее в переменную как:

content=$(wget google.com -q -O -) 
echo $content 

Мы используем -O вариант wget, который позволяет нам указать имя файла, в который wget Сплин содержание страницы. Мы указываем -, чтобы получить дамп на стандартный вывод и собрать его в переменную content. Вы можете добавить тихий вариант -q, чтобы отключить вывод wget.

Вы можете использовать команду curl для этого Aswell как:

content=$(curl -L google.com) 
echo $content 

Мы должны использовать опцию -L как страницы, которую мы запрашивающие могли бы переместить. В этом случае нам нужно получить страницу из нового места. Опция -L или --location помогает нам в этом.

+2

Я объяснил, и ваш вопрос был отредактирован с тех пор, поэтому мой нисходящий сигнал больше ничего не значит ... (Он фактически превратился в upvote). –

+0

Это действительно опрятный трюк. Я вызываю скрипт оболочки через php-скрипт на прокси-сервере. Когда его спросят, прокси-сервер включает дорогостоящие серверы, которые отключились через 2 часа. Мне нужен вывод wget для стандартного вывода для возврата к записи консоли Jenkins. – Dennis

+0

Я еще не получил этого ... может кто-нибудь продемонстрировать, как, например. получить тег img в переменной для этой ссылки http://www2.watchop.io/manga2/read/one-piece/1/4 ?? – juggernaut1996

9

Есть команда wget или curl.

Теперь вы можете использовать файл, загруженный с помощью wget. Или вы можете обрабатывать поток с завитом.


Ресурсы:

2
content=`wget -O - $url` 
+2

'$ (...)' предпочтительнее, чем '' '', см. http://mywiki.wooledge.org/BashFAQ/082 – Giacomo

+2

Думаю, я показываю свой возраст. В тот же день все _we_ были обратными шагами ... и мы это сделали! Теперь сойди с газона! –

+0

@rjack: (Но статья, с которой вы связались, делает довольно хороший случай для синтаксиса $ (...).) –

2

Вы можете использовать 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. 
20

есть много способов, чтобы получить страницу в командной строке ..., но это также зависит, если вы хотите, чтобы исходный код или саму страницу:

Если вам нужен исходный код

с загнутым: curl $url

с Wget: wget -O - $url

но если вы Wa нт, чтобы получить то, что вы можете увидеть с помощью браузера, рысь может быть полезна: lynx -dump $url

Я думаю, что вы можете найти так много решений для этой маленькой проблемы, может быть, вы должны прочитать все страницы руководства для этих команд.И не забудьте заменить $ URL вашего URL :)

Удачи :)

2

Если у вас есть 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 &quot;example.com&quot;, 
&quot;example.net&quot;,&quot;example.org&quot 
    or &quot;example.edu&quot; 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 ведут себя аналогичным образом.

Смежные вопросы