I'm using the wget
program, but I want it not to save the html file I'm downloading. I want it to be discarded after it is received. How do I do that?
I'm using the wget
program, but I want it not to save the html file I'm downloading. I want it to be discarded after it is received. How do I do that?
You can redirect the output of wget to /dev/null (or NUL on Windows):
The file won't be written to disk, but it will be downloaded.
If you don't want to save the file, and you have accepted the solution of downloading the page in
/dev/null
, I suppose you are using wget not to get and parse the page contents.If your real need is to trigger some remote action, check that the page exists and so on I think it would be better to avoid downloading the html body page at all.
Play with
wget
options in order to retrieve only what you really need, i.e. http headers, request status, etc.assuming you need to check the page is ok (ie, the status returned is 200) you can do the following:
if you want to parse server returned headers do the following:
See the wget man page for further options to play with.
See
lynx
too, as an alternative to wget.In case you also want to print in the console the result you can do:
$ wget http://www.somewebsite.com -O foo.html --delete-after
Another alternative is to use a tool like
curl
, which by default outputs the remote content tostdout
instead of saving it to a file.Check out the "-spider" option. I use it to make sure my web sites are up and send me an email if they're not. This is a typical entry from my crontab:
If you need to crawl a website using wget and want to minimize disk churn...
For a *NIX box and using
wget
, I suggest skipping writing to a file . I noticed on my Ubuntu 10.04 box thatwget -O /dev/null
caused wget to abort downloads after the first download.I also noticed that
wget -O real-file
causes wget to forget the actual links on the page. It insists on anindex.html
to be present on each page. Such pages may not always be present and wget will not remember links it has seen previously.For crawling without writing to disk, the best I came up with is the following
Notice there is no
-O file
option. wget will write to the $PWD directory. In this case that is a RAM-only tmpfs file system. Writing here should bypass disk churn (depending upon swap space) AND keep track of all links. This should crawl the entire website successfully.Afterward, of course,
Use the --delete-after option, which deletes the file after it is downloaded.
Edit: Oops, I just noticed that has already been answered.
According to the help doc(wget -h), you can use --spider option to skip download(version 1.14).