精通Linux系列二十六:命令行浏览网页
点击关注公众号,AI&编程干货及时送达
网络浏览
命令 | 含义 |
lynx | 仅文本网络浏览器。 |
wget | 下载网页和文件。 |
除了常用的网页浏览器如Chrome和Firefox,Linux通过命令行提供了几种浏览万维网的方式。
lynx
stdin stdout - 文件 -- 选项 --帮助 --版本
lynx [选项] [网址]
Lynx是一个精简的,仅文本的网络浏览器。它不显示图片、不播放音频或视频,甚至不响应你的鼠标。但是当你只想快速查看一个页面、或当网络很慢、或是下载网站的HTML时,它非常有用。特别是当检查一个可疑的URL时,因为Lynx不运行JavaScript,甚至在问你之前都不会接受cookie。
→ lynx http://www.yahoo.com
所有的浏览都是通过键盘完成的。许多页面可能看起来不太对,特别是如果它们广泛使用表格或框架,但通常你可以在站点上找到自己的路。
按键 | 含义 |
? | 获取帮助。 |
k | 列出所有按键及其含义。 |
^G | 取消正在进行的命令。 |
q | 退出Lynx。 |
Enter | “点击”当前链接,或完成当前表单字段。 |
左箭头 | 返回上一页。 |
右箭头 | 前进到下一页,或“点击”当前链接。 |
g | 转到一个URL(你将被提示输入)。 |
p | 保存、打印或邮寄当前页面。 |
空格键 | 向下滚动。 |
b | 向上滚动。 |
下箭头 | 转到下一个链接或表单字段。 |
上箭头 | 转到上一个链接或表单字段。 |
^A | 转到页面顶部。 |
^E | 转到页面底部。 |
m | 返回主页/首页。 |
/ | 在页面上搜索文本。 |
a | 为当前页面添加书签。 |
v | 查看你的书签列表。 |
r | 删除一个书签。 |
= | 显示当前页面和链接的属性。 |
\ | 查看HTML源码(再次输入返回正常视图)。 |
Lynx有超过100个命令行选项,所以manpage值得探索。如果你喜欢基于文本的浏览,但Lynx不合你的口味,尝试类似的程序,如w3m
(w3m)、links
(links)和elinks
(elinks)。
有用的选项
-dump | 将渲染的页面打印到标准输出并退出。(与-source 选项相比) |
-source | 将HTML源码打印到标准输出并退出。(与wget 命令相比) |
-emacskeys | 使Lynx遵循类似emacs编辑器的按键。 |
-vikeys | 使Lynx遵循类似vim(或vi)编辑器的按键。 |
-homepage= URL | 将你的主页URL设置为*URL *。 |
-color | 打开彩色文本模式。 |
-nocolor | 关闭彩色文本模式。 |
wget
stdin stdout - 文件 -- 选项 --帮助 --版本
wget [选项] 网址
wget
命令用于访问一个URL并将数据下载到文件或标准输出中。它非常适合捕获单个网页、下载文件或复制整个网站层次结构到任意深度。例如,我们来捕获Yahoo!(雅虎)的主页:
→ wget http://www.yahoo.com
23:19:51 (220.84 KB/s) - 'index.html' 已保存 [31434]
这将保存在当前目录的index.html文件中。如果wget
在下载过程中被中断,例如因为网络故障,它还具有恢复下载的功能:只需用相同的URL运行wget -c
,它就会从中断的地方继续。
或许wget
最有用的特性是它能够在不需要网页浏览器的情况下下载文件:
→ wget http://linuxpocketguide.com/sample.pdf
这对于大文件如视频和ISO映像非常有用。如果你知道它们的名称,甚至可以编写shell脚本来下载文件集:
→ for i in 1 2 3
do
wget http://example.com/$i.mpeg
done
另一个类似的命令是curl
,它默认写入标准输出——不像wget
,wget
默认复制原始页面和文件名:
→ curl http://www.yahoo.com > mypage.html
wget
有超过70个选项,所以我们只介绍几个重要的。(curl
有一套不同的选项;请查看其手册。)
有用的选项
-i filename | 从给定文件读取URL并依次检索它们。 |
-O filename | 将所有捕获的HTML写入给定的文件,一个页面接一个页面地追加。 |
-c | 继续模式:如果之前的检索被中断,只留下一个部分文件作为结果,从wget 停止的地方继续。也就是说,如果wget 已经下载了150K文件的100K,-c 选项表示只检索剩下的50K并将其追加到现有文件。但是,如果远程文件在第一次(部分)下载后已经更改,wget 可能会被欺骗,所以只有在你知道远程文件没有更改的情况下才使用这个选项。 |
-t * N* | 尝试*N 次放弃之前。N * =0表示无限尝试。 |
--progress=dot | 打印点来显示下载进度。 |
--progress=bar | 打印条形图来显示下载进度。 |
--spider | 不下载,只检查远程页面的存在。 |
-nd | 将所有文件检索到当前目录,即使它们在远程处于更复杂的目录树中。(默认情况下,wget 复制远程目录层次结构。) |
-r | 递归检索页面层次结构,包括子目录。 |
-l * N* | 检索最多*N *层深的文件(默认为5)。 |
-k | 在检索的文件中,修改URL,以便文件可以在本地的web浏览器中查看。 |
-p | 下载所有必要的文件以完整显示一个页面,如样式表和图片。 |
-L | 跟随相对链接(在页面内部),但不跟随绝对链接。 |
-A pattern | 接受模式:只下载文件名与给定模式匹配的文件。模式可能包含与shell相同的通配符。 |
-R pattern | 拒绝模式:只下载文件名不与给定模式匹配的文件。 |
-I pattern | 目录包含:只从与给定模式匹配的目录下载文件。 |
-X pattern | 目录排除:只从与给定模式不匹配的目录下载文件。 |
推荐阅读
你好,我是拾叁,7年开发老司机、互联网两年外企5年。怼得过阿三老美,也被PR comments搞崩溃过。这些年我打过工,创过业,接过私活,也混过upwork。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。