WGET - QB64 Wiki


From QB64 Wiki

Jump to: navigation, search

GNU's WGET.EXE is a command line program that can retrieve or create files using HTTP, HTTPS and FTP internet connections.

Syntax: WGET [OPTIONS]... [URL]...[FileName]

WGET Command Line OPTIONS Startup: -V --version display the version of Wget and exit. -h --help print this help. Use WGET -h > WGEThelp.txt for help file. -b --background go to background after startup. -e --execute=COMMAND execute a `.wgetrc'-style command. Logging and input file: -o --output-file=FILE log messages to FILE. -a --append-output=FILE append messages to FILE. -d --debug print lots of debugging information. -q --quiet quiet (no output). -v --verbose be verbose (this is the default). -nv --no-verbose turn off verboseness, without being quiet. -i --input-file=FILE download URLs found in FILE. -F --force-html treat input file as HTML. -B --base=URL prepends URL to relative links in -F -i file. Download: -t --tries=NUMBER set number of retries to NUMBER (0 unlimits). --retry-connrefused retry even if connection is refused. -O --output-document=FILE write documents to FILE. Overwrites previous data. -nc --no-clobber skip downloads that would download to existing files. -c --continue resume getting a partially-downloaded file. --progress=TYPE select progress gauge type. -N --timestamping don't re-retrieve files unless newer than local. -S --server-response print server response. --spider don't download anything. -T --timeout=SECONDS set all timeout values to SECONDS. --dns-timeout=SECS set the DNS lookup timeout to SECS. --connect-timeout=SECS set the connect timeout to SECS. --read-timeout=SECS set the read timeout to SECS. -w --wait=SECONDS wait SECONDS between retrievals. --waitretry=SECONDS wait 1..SECONDS between retries of a retrieval. --random-wait wait from 0...2*WAIT secs between retrievals. --no-proxy explicitly turn off proxy. -Q --quota=NUMBER set retrieval quota to NUMBER. --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host. --limit-rate=RATE limit download rate to RATE. --no-dns-cache disable caching DNS lookups. --restrict-file-names=OS restrict chars in file names to ones OS allows. --ignore-case ignore case when matching files/directories. --user=USER set both ftp and http user to USER. --password=PASS set both ftp and http password to PASS. Directories: -nd --no-directories don't create directories. -x --force-directories force creation of directories. -nH --no-host-directories don't create host directories. --protocol-directories use protocol name in directories. -P --directory-prefix=PREFIX save files to PREFIX/... --cut-dirs=NUMBER ignore NUMBER remote directory components. HTTP options: --http-user=USER set http user to USER. --http-password=PASS set http password to PASS. --no-cache disallow server-cached data. -E --html-extension save HTML documents with `.html' extension. --ignore-length ignore `Content-Length' header field. --header=STRING insert STRING among the headers. --max-redirect maximum redirections allowed per page. --proxy-user=USER set USER as proxy username. --proxy-password=PASS set PASS as proxy password. --referer=URL include `Referer: URL' header in HTTP request. --save-headers save the HTTP headers to file. -U --user-agent=AGENT identify as AGENT instead of Wget/VERSION. * See notes --no-http-keep-alive disable HTTP keep-alive (persistent connections). --no-cookies don't use cookies. --load-cookies=FILE load cookies from FILE before session. --save-cookies=FILE save cookies to FILE after session. --keep-session-cookies load and save session (non-permanent) cookies. --post-data=STRING use the POST method; send STRING as the data. --post-file=FILE use the POST method; send contents of FILE. --content-disposition honor the Content-Disposition header when choosing local file names (EXPERIMENTAL). --auth-no-challenge Send Basic HTTP authentication information without first waiting for the server's challenge. HTTPS (SSL/TLS) options: --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, and TLSv1. --no-check-certificate don't validate the server's certificate. --certificate=FILE client certificate file. --certificate-type=TYPE client certificate type, PEM or DER. --private-key=FILE private key file. --private-key-type=TYPE private key type, PEM or DER. --ca-certificate=FILE file with the bundle of CA's. --ca-directory=DIR directory where hash list of CA's is stored. --random-file=FILE file with random data for seeding the SSL PRNG. --egd-file=FILE file naming the EGD socket with random data. FTP options: --ftp-user=USER set ftp user to USER. --ftp-password=PASS set ftp password to PASS. --no-remove-listing don't remove `.listing' files. --no-glob turn off FTP file name globbing. --no-passive-ftp disable the "passive" transfer mode. --retr-symlinks when recursing, get linked-to files (not dir). --preserve-permissions preserve remote file permissions. Recursive download: -r --recursive specify recursive download. -l --level=NUMBER maximum recursion depth (inf or 0 for infinite). --delete-after delete files locally after downloading them. -k --convert-links make links in downloaded HTML point to local files. -K --backup-converted before converting file X, back up as X.orig. -m --mirror shortcut for -N -r -l inf --no-remove-listing. -p --page-requisites get all images, etc. needed to display HTML page. --strict-comments turn on strict (SGML) handling of HTML comments. Recursive accept/reject: -A --accept=LIST comma-separated list of accepted extensions. -R --reject=LIST comma-separated list of rejected extensions. -D --domains=LIST comma-separated list of accepted domains. --exclude-domains=LIST comma-separated list of rejected domains. --follow-ftp follow FTP links from HTML documents. --follow-tags=LIST comma-separated list of followed HTML tags. --ignore-tags=LIST comma-separated list of ignored HTML tags. -H --span-hosts go to foreign hosts when recursive. -L --relative follow relative links only. -I --include-directories=LIST list of allowed directories. -X --exclude-directories=LIST list of excluded directories. -np --no-parent don't ascend to the parent directory. Mail bug reports and suggestions to bug-wget@gnu.org.

  • Note: If WGET fails to download at a particular site it may be blocked by the WGET version number. Add --user-agent = to the end as below:

SHELL _HIDE "wget http://education.jlab.org/itselemental/ele001.html -O a.htm --user-agent ="

Look in your C:\Windows folder for wget.exe. Download it here: [WGET download: http://gnuwin32.sourceforge.net/packages/wget.htm]

Frequently Asked Questions about Wget

Default options (wget.ini file)
You can put either a wget.ini file in the same directory as wget.exe, or use an environment variable called wgetrc to point to the file if it is in another location (set wgetrc=\path\wget.ini). Syntax for wget.ini (or .wgetrc) can be found in the official documentation.

Example: Retrieving your current IP address without provoking your firewall security programs. This works in Qbasic too!

SHELL _HIDE "wget http://checkip.dyndns.com/ -O globalIP.htm" '-O overwrites previous file OPEN "globalIP.htm" FOR INPUT AS 1 LINE INPUT #1, IP$ CLOSE IP$ = MID$(IP$, INSTR(IP$, ":") + 2) 'start string after "Current IP Address:" IP$ = LEFT$(IP$, INSTR(IP$, "<") - 1) 'end string before "</body></html>" PRINT IP$

Code courtesy of Michael Calkins
Wget retrieves your global IP address from the dyndns.com site and creates an htm file with the text structure below:

<html><head><title>Current IP Check</title></head><body>Current IP Address:</body></html>

See also:

Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
Personal tools