Как получить содержимое веб-страницы в переменной оболочки? - PullRequest
100 голосов
/ 18 сентября 2010

В Linux, как я могу получить URL и получить его содержимое в переменной в сценарии оболочки?

Ответы [ 6 ]

172 голосов
/ 18 сентября 2010

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

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

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

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

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

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

21 голосов
/ 19 сентября 2010

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

Если вам нужен код источника:

с завитком:

curl $url

с wget:

wget -O - $url

но если вы хотите получить то, что видите в браузере, вам может пригодиться lynx:

lynx -dump $url

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

Удачи:)

9 голосов
/ 18 сентября 2010

Существует команда wget или curl.

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


Ресурсы:

3 голосов
/ 18 сентября 2010
content=`wget -O - $url`
2 голосов
/ 19 сентября 2010

Если у вас установлен 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 ведут себя аналогично.

2 голосов
/ 18 сентября 2010

Вы можете использовать curl или wget для получения необработанных данных, или вы можете использовать w3m -dump, чтобы получить хорошее текстовое представление веб-страницы.

...