在Linux中如何获取URL并在shell脚本中的变量中获取其内容?
答案 0 :(得分:167)
您可以使用wget
命令下载页面并将其读入变量:
content=$(wget google.com -q -O -)
echo $content
我们使用-O
的{{1}}选项,它允许我们指定wget
转储页面内容的文件的名称。我们指定wget
以将转储转换为标准输出并将其收集到变量-
中。您可以添加content
quiet选项以关闭wget输出。
您可以使用curl命令以及:
-q
我们需要使用content=$(curl -L google.com)
echo $content
选项,因为我们请求的页面可能已移动。在这种情况下,我们需要从新位置获取页面。 -L
或-L
选项可帮助我们解决此问题。
答案 1 :(得分:21)
有很多方法可以从命令行获取页面...但它还取决于您是否需要代码源或页面本身:
如果您需要代码来源:
卷曲:
curl $url
使用wget:
wget -O - $url
但是如果你想通过浏览器看到你可以看到的内容,lynx可能很有用:
lynx -dump $url
我认为你可以为这个小问题找到很多解决方案,也许你应该阅读这些命令的所有手册页。并且不要忘记用您的网址替换$url
:)
答案 2 :(得分:9)
答案 3 :(得分:3)
content=`wget -O - $url`
答案 4 :(得分: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.
答案 5 :(得分:2)
$ 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
行为相似。
答案 6 :(得分:1)
没有 curl,没有 wget,没有 ncat,什么都没有?使用telnet
:
$ 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