我正在使用wget
程序,但我希望它不保存我正在下载的HTML文件。 我希望它在收到后被丢弃。 我怎么做?
您可以将wget的输出redirect到/ dev / null(或Windows上的NUL):
wget http://www.example.com -O /dev/null
该文件不会写入磁盘,但会被下载。
如果你不想保存文件,并且已经接受了在/dev/null
下载页面的解决scheme, 我想你正在使用wget不去获取和parsing页面内容 。
如果你的真正需要是触发一些远程操作,检查页面是否存在等等,我认为最好是避免下载html正文页面。
玩wget
选项,以检索只有你真正需要的,即http头,请求状态等
假设您需要检查页面是否正常(即返回的状态是200),您可以执行以下操作:
wget --no-cache --spider http://your.server.tld/your/page.html
如果你想parsing服务器返回的头文件,请执行以下操作:
wget --no-cache -S http://your.server.tld/your/page.html
请参阅wget手册页以获取更多选项。
也见lynx
as,作为wget的替代品。
$ wget http://www.somewebsite.com -O foo.html --delete-after
如果你还想在控制台中打印结果,你可以这样做:
wget -qO- http://www.example.com
另一种方法是使用curl
这样的工具,默认情况下将远程内容输出到stdout
而不是将其保存到文件中。
看看“-spider”选项。 我用它来确保我的网站已经启动,如果不是的话,请给我发一封电子邮件。 这是从我的crontab典型的入口:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
对于* NIX框和使用wget
,我build议跳过写入文件。 我注意到我的Ubuntu 10.04盒子wget -O /dev/null
导致wget在第一次下载后中止下载。
我也注意到, wget -O real-file
会导致wget忘记页面上的实际链接。 它坚持在每个页面上都有一个index.html
。 这样的网页可能并不总是存在,而wget不会记得之前看到的链接。
mkdir /dev/shm/1 cd /dev/shm/1 wget --recursive --relative --no-parent ...
注意没有-O file
选项。 wget将写入$ PWD目录。 在这种情况下,这是一个只有RAM的tmpfs文件系统。 写在这里应该绕过磁盘stream失(取决于交换空间)并跟踪所有的链接。 这应该抓取整个网站成功。
之后,当然,
rm --recursive --force /dev/shm/1/*
使用–delete-after选项,它会在下载完成后删除文件。
编辑:哎呀,我只是注意到,已经被回答。