Linux 使用 cURL 查看天气
2018-01-27 15:21
309 查看
Centos7环境下安装curl
Contents
curl介绍curl安装步骤
curl测试效果
curl
帮助文档
curl介绍
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。curl是一款著名的字符界面下的下载工具,支持HTTP、HTTPS、FTP、FTPS、DICT、TELNET、LDAP、FILE,和GOPHER。此外还具有cookies支持、断点续传、FTP上传、密码支持、SSL支持和代理支持等特性。curl同时还提供了一套libcurl的库,开发者可以基于这个库开发其他下载工具。
官网地址:https://curl.haxx.se/
官网文档:https://curl.haxx.se/docs/
官网下载地址:https://curl.haxx.se/download.html
curl安装步骤
1.获得安装包,从网上直接下载或者其他途径,这里直接wget# wget https://curl.haxx.se/download/curl-7.54.0.tar.gz |
1 | # tar -zxf curl-7.54.0.tar.gz |
1 | # cd curl-7.17.1 |
1234 | ./configuremakemake test (optional)make install |
curl测试效果
测试版本:curl –version发送一个get请求: curl http://www.netscape.com/
详细可以参考官方测试例子文档:https://curl.haxx.se/docs/manual.html当然也可以通过centos中的 curl –manual 来获取使用例子。
curl 帮助文档
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a/--append 上传文件时,附加到目标文件 (F/SFTP) --basic 使用HTTP基本验证(H) --cacert <file> CA certificate to verify peer against (SSL) --capath <directory> CA directory to verify peer against (SSL) -E/--cert <cert[:passwd]> Client certificate file and password (SSL) --cert-type <type> Certificate file type (DER/PEM/ENG) (SSL) --ciphers <list> SSL ciphers to use (SSL) --compressed Request compressed response (using deflate or gzip) -K/--config <file> Specify which config file to read --connect-timeout <seconds> Maximum time allowed for connection -C/--continue-at <offset> Resumed transfer offset -b/--cookie <name=string/file> cookie字符串或文件读取位置 (H) -c/--cookie-jar <file> Write cookies to this file after operation (H) --create-dirs Create necessary local directory hierarchy --crlf Convert LF to CRLF in upload --crlfile <file> Get a CRL list in PEM format from the given file -d/--data <data> HTTP POST方式传送数据 (H) --data-ascii <data> 以ascii的方式post数据 (H) --data-binary <data> 以二进制的方式post数据 (H) --data-urlencode <name=data/name@filename> HTTP POST data url encoded (H) --delegation STRING GSS-API delegation permission --digest 使用数字身份验证(H) --disable-eprt 禁止使用EPRT或LPRT (F) --disable-epsv 禁止使用EPSV (F) -D/--dump-header <file> 把header信息写入到该文件中 --egd-file <file> 为随机数据(SSL)设置EGD socket路径 (SSL) --engine <eng> Crypto engine to use (SSL). "--engine list" for list -f/--fail 连接失败时不显示http错误(H) -F/--form <name=content> 模拟http表单提交数据 (H) --form-string <name=string> 模拟http表单提交数据 (H) --ftp-account <data> Account data to send when requested by server (F) --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F) --ftp-create-dirs 如果远程目录不存在,创建远程目录 (F) --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用 (F) --ftp-pasv 使用 PASV/EPSV 代替端口(F) -P/--ftp-port <address> Use PORT with address instead of PASV (F) --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址(F) --ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输 (F) --ftp-ssl-ccc Send CCC after authenticating (F) --ftp-ssl-ccc-mode [active/passive] Set CCC mode (F) --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F) --ftp-ssl-reqd Require SSL/TLS for ftp transfer (F) -G/--get 以get的方式来发送数据 (H) -g/--globoff 禁用网址序列和范围使用{}和[] {} and [] -H/--header <line> 自定义头信息传递给服务器 (H) -I/--head Show document info only -h/--help 帮助 --hostpubmd5 <md5> Hex encoded MD5 string of the host public key. (SSH) -0/--http1.0 Use HTTP 1.0 (H) --ignore-content-length 忽略的HTTP头信息的长度 -i/--include 输出时包括protocol头信息 (H/F) -k/--insecure Allow connections to SSL sites without certs (H) --interface <interface> Specify network interface/address to use -4/--ipv4 Resolve name to IPv4 address -6/--ipv6 Resolve name to IPv6 address -j/--junk-session-cookies Ignore session cookies read from file (H) --keepalive-time <seconds> Interval between keepalive probes --key <key> Private key file name (SSL/SSH) --key-type <type> Private key file type (DER/PEM/ENG) (SSL) --krb <level> Enable Kerberos with specified security level (F) --libcurl <file> Dump libcurl equivalent code of this command line --limit-rate <rate> Limit transfer speed to this rate -l/--list-only List only names of an FTP directory (F) --local-port <num>[-num] Force use of these local port numbers -L/--location Follow Location: hints (H) --location-trusted Follow Location: and send auth to other hosts (H) -M/--manual Display the full manual --max-filesize <bytes> Maximum file size to download (H/F) --max-redirs <num> Maximum number of redirects allowed (H) -m/--max-time <seconds> Maximum time allowed for the transfer --negotiate Use HTTP Negotiate Authentication (H) -n/--netrc Must read .netrc for user name and password --netrc-optional Use either .netrc or URL; overrides -n -N/--no-buffer Disable buffering of the output stream --no-keepalive Disable keepalive use on the connection --no-sessionid Disable SSL session-ID reusing (SSL) --noproxy Comma-separated list of hosts which do not use proxy --ntlm Use HTTP NTLM authentication (H) -o/--output <file> Write output to <file> instead of stdout --pass <pass> Pass phrase for the private key (SSL/SSH) --post301 Do not switch to GET after following a 301 redirect (H) --post302 Do not switch to GET after following a 302 redirect (H) -#/--progress-bar Display transfer progress as a progress bar -x/--proxy <host[:port]> Use HTTP proxy on given port --proxy-anyauth Pick "any" proxy authentication method (H) --proxy-basic Use Basic authentication on the proxy (H) --proxy-digest Use Digest authentication on the proxy (H) --proxy-negotiate Use Negotiate authentication on the proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H) -U/--proxy-user <user[:password]> Set proxy user and password --proxy1.0 <host[:port]> Use HTTP/1.0 proxy on given port -p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT) --pubkey <key> Public key file name (SSH) -Q/--quote <cmd> Send command(s) to server before file transfer (F/SFTP) --random-file <file> File for reading random data from (SSL) -r/--range <range> Retrieve only the bytes within a range --raw Pass HTTP "raw", without any transfer decoding (H) -e/--referer Referer URL (H) -O/--remote-name Write output to a file named as the remote file --remote-name-all Use the remote file name for all URLs -R/--remote-time 在本地生成文件时,保留远程文件时间 -X/--request <command> Specify request command to use --retry <num> 传输出现问题时,重试的次数 --retry-delay <seconds> 传输出现问题时,设置重试间隔时间 --retry-max-time <seconds> 传输出现问题时,设置最大重试时间 period -S/--show-error 显示错误 -s/--silent 不输出任何东西 --socks4 <host[:port]> SOCKS4 proxy on given host + port --socks4a <host[:port]> SOCKS4a proxy on given host + port --socks5 <host[:port]> SOCKS5 proxy on given host + port --socks5-hostname <host[:port]> SOCKS5 proxy, pass host name to proxy --socks5-gssapi-service <name> SOCKS5 proxy service name for gssapi --socks5-gssapi-nec Compatibility with NEC SOCKS5 server -Y/--speed-limit 停止传输速度的限制,速度时间'秒 -y/--speed-time 放弃限速所要的时间。默认为30 Defaults to 30 -2/--sslv2 Use SSLv2 (SSL) -3/--sslv3 Use SSLv3 (SSL) --stderr <file> Where to redirect stderr. - means stdout --tcp-nodelay Use the TCP_NODELAY option -t/--telnet-option <OPT=val> Set telnet option -z/--time-cond <time> 传送时间设置 -1/--tlsv1 Use => TLSv1 (SSL) --tlsv1.0 Use TLSv1.0 (SSL) --tlsv1.1 Use TLSv1.1 (SSL) --tlsv1.2 Use TLSv1.2 (SSL) --trace <file> Write a debug trace to the given file --trace-ascii <file> Like --trace but without the hex output --trace-time Add time stamps to trace/verbose output -T/--upload-file <file> Transfer <file> to remote site --url <URL> Set URL to work with -B/--use-ascii Use ASCII/text transfer -u/--user <user[:password]> Set server user and password -A/--user-agent <string> User-Agent to send to server (H) -v/--verbose Make the operation more talkative -V/--version Show version number and quit -w/--write-out <format> What to output after completion -q If used as the first parameter disables .curlrc |
查看天气
首先,打开 Linux 终端或者 Linux 子系统,先来检查一下有没有安装 cURL,输入which curl,如果有返回信息,比如
/usr/bin/curl,表示
cURL 已经安装,如果没有返回信息,可以使用
sudo apt-get update;sudo apt-get install curl # 仅适用于 Debian/Ubuntu来进行安装。
cURL 准备好以后,就可以来获取天气了,简单来说就是用 cURL 把一个网站的天气信息传回本地,这个网站就是:wttr.in。
我们可以先试一下获取,输入
curl wttr.in,是不是跟网站一模一样,可是输出的都是英文,而且位置有时候也会判断错误,可以通过参数来指定位置和语言。
curl -H "Accept-Language: 语言" wttr.in/地名,这个地名可以是很多种,可以是城市名称,如:Beijing(北京);机场代码,如:PEK(北京首都国际机场);域名所在位置,如:@mivm.cn(浙江杭州);GPS
坐标,如:-39.9087191,116.3952003(天安门),还有两个,任意位置和区号,不过那个在国内不好用,所以就不说了,至于语言,目前支持的语言:
az be bg bs ca cy cs da de el eo es et fi fr hi hr hu hy is it ja jv ka kk ko ky lv mk ml nl nn pt pl ro ru sk sl sr sr-lat sv sw th tr uk uz vi zh zu,比如我在郑州,输入
curl -H "Accept-Language: zh" wttr.in/ZhengZhou
默认获取3天的天气,最多只能获取3天,那么只想获取当天或者1天的天气怎么办呢,继续加参数啊。
curl -H "Accept-Language: 语言" wttr.in/地名?天数#,天数可以指定为:0、1、2,0 表示当前天气,1 表示当前天气 + 1天天气,2 表示当前天气 + 2天天气,比如
curl -H "Accept-Language: zh" wttr.in/ZhengZhou?1#,这个其实是个查看选项,可以使用其他查看选项来更改样式,n:输出显示为窄版;q:不显示“天气预报”字样;Q:不显示“天气预报”和城市名称;T:不显示颜色,这些参数可以配合起来使用,比如
curl -H "Accept-Language: zh" wttr.in/ZhengZhou?1T#
查看月相
这个网站不仅可以查询天气,还可以查看月相,至于月相是什么鬼,我也不太清楚,反正能装X就对了。输入
curl wttr.in/moon即可查看月相,可以指定日期来查看,比如
curl wttr.in/moon@2016-10-25
以后如果有人问你你那里的天气怎么样,你就可以用这种方法来获取天气,然后截图装X,哈哈哈。
相关文章推荐
- Linux 使用 cURL 查看天气
- Linux下使用curl查看http请求各阶段耗时
- linux命令行下使用curl命令查看自己机器的外网ip
- linux - 使用curl实现新浪天气API应用
- linux - 使用curl实现新浪天气API应用
- linux命令行下使用curl命令查看自己机器的外网ip
- 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- 转 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux下使用QQ和查看QQ空间
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Linux下查看CPU使用率!系统资源使用情况!
- 在Linux下查看端口的使用情况及启动
- [转]Linux查看磁盘使用情况命令
- 查看linux系统最常使用的10条命令
- linux下查看内存使用情况
- [转]linux查看硬盘使用情况命令
- linux下查看内存使用情况
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- linux 查看端口使用情况
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍 推荐