查看原文
其他

精通Linux系列二十六:命令行浏览网页

拾叁 更AI 2023-10-21

点击关注公众号,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,它默认写入标准输出——不像wgetwget默认复制原始页面和文件名:

→ 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。赚过钱也亏过钱。一路过来,给我最深的感受就是不管学什么,一定要不断学习。只要你能坚持下来,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯和编程知识,帮你积累弯道超车的资本。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存