Skip to content
wpull fork with fixes and faster parsing using html5-parser; used by grab-site; should go away when wpull is similarly improved
Branch: master
Clone or download
ivan remove specific Python versions from trove classifiers
Note: currently only tested with Python 3.7
Latest commit 475efb7 Dec 14, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
freezer freezer: Install specific version of Pyinstaller. Add plain entry poi… Jun 17, 2016
test test: Run fuzzers with faulthandler enabled Apr 20, 2015
wpull Bump version 3.0.7 Oct 16, 2018
.travis.yml travis config: Blacklist topic/modernize_2016 Feb 7, 2016 doc: Add testing notes, how to help, update current year Jun 13, 2016 github: Format and reword issue template a bit Jun 20, 2016
LICENSE.txt freeze: Add some readmes Mar 13, 2015 github: Fill in more contributing doc. Add issue/PR templates. Jun 3, 2016
README.rst Remove phantomjs support; suggested alternative is to use a browser-b… Oct 5, 2018 Reformat with autopep8. May 29, 2014
requirements-sphinx.txt Require last-working tornado version Oct 5, 2018
requirements.txt Require last-working tornado version Oct 5, 2018 remove specific Python versions from trove classifiers Dec 14, 2018



Wpull is a Wget-compatible (or remake/clone/replacement/alternative) web downloader and crawler.

A dog pulling a box via a harness.

Notable Features:

  • Written in Python: lightweight, modifiable, robust, & scriptable
  • Graceful stopping; on-disk database resume
  • youtube-dl integration (experimental)


Wpull uses Python 3.

Once Python is installed, download Wpull from PyPI using pip:

pip3 install wpull

For detailed installation instructions and potential caveats, please see

Example Commands

To download the About page of


To archive a website:

wpull billy.blogsite.example \
    --warc-file blogsite-billy \
    --no-check-certificate \
    --no-robots --user-agent "InconspiuousWebBrowser/1.0" \
    --wait 0.5 --random-wait --waitretry 600 \
    --page-requisites --recursive --level inf \
    --span-hosts-allow linked-pages,page-requisites \
    --escaped-fragment --strip-session-id \
    --sitemaps \
    --reject-regex "/login\.php" \
    --tries 3 --retry-connrefused --retry-dns-error \
    --timeout 60 --session-timeout 21600 \
    --delete-after --database blogsite-billy.db \
    --quiet --output-file blogsite-billy.log

To see all options:

wpull --help


Documentation is located at Please have a look at it before using Wpull's advanced features.


Need help? Please see our Help page which contains frequently asked questions and support information.

The issue tracker is located at


Travis CI build status Coveralls report

Contributions and feedback are greatly appreciated.


Copyright 2013-2016 by Christopher Foo and others. License GPL v3.

This project contains third-party source code licensed under different terms:

  • wpull.backport.logging
  • wpull.thirdparty.robotexclusionrulesparser
  • wpull.thirdparty.dammit

We would like to acknowledge the authors of GNU Wget as Wpull uses algorithms from Wget.

You can’t perform that action at this time.