waybackpy/README.md
2022-01-18 20:44:47 +05:30

4.9 KiB
Raw Blame History


Python package & CLI tool that interfaces with the Wayback Machine API

pypi Contributions Welcome Downloads GitHub lastest commit PyPI - Python Version


Introduction

Waybackpy is a Python package and a CLI tool that interfaces with the Wayback Machine API.

Wayback Machine has 3 client side APIs.

  • Save API
  • Availability API
  • CDX API

All three of these can be accessed by waybackpy.

🏗 Installation

Using pip:

pip install waybackpy

Install directly from GitHub:

pip install git+https://github.com/akamhy/waybackpy.git

Docker Image

Docker Hub : https://hub.docker.com/r/secsi/waybackpy

Docker image is automatically updated on every release by Regulary and Automatically Updated Docker Images (RAUDI).

RAUDI is a tool by SecSI (https://secsi.io), an Italian cybersecurity startup.

Usage

As a Python package

Save API aka SavePageNow
>>> from waybackpy import WaybackMachineSaveAPI
>>> 
>>> url = "https://en.wikipedia.org/wiki/Multivariable_calculus"
>>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0"
Availability API
>>> from waybackpy import WaybackMachineAvailabilityAPI
>>> 
>>> url = "https://google.com"
>>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0"
>>> 
>>> availability_api = WaybackMachineAvailabilityAPI(url, user_agent)
>>> 
>>> availability_api.oldest()
https://web.archive.org/web/19981111184551/http://google.com:80/
>>> 
>>> availability_api.newest()
https://web.archive.org/web/20220118150444/https://www.google.com/
>>> 
>>> availability_api.near(year=2010, month=10, day=10, hour=10)
https://web.archive.org/web/20101010101708/http://www.google.com/
>>> import waybackpy

>>> url = "https://en.wikipedia.org/wiki/Multivariable_calculus"
>>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0"

>>> wayback = waybackpy.Url(url, user_agent)

>>> archive = wayback.save()
>>> archive.archive_url
'https://web.archive.org/web/20210104173410/https://en.wikipedia.org/wiki/Multivariable_calculus'

>>> archive.timestamp
datetime.datetime(2021, 1, 4, 17, 35, 12, 691741)

>>> oldest_archive = wayback.oldest()
>>> oldest_archive.archive_url
'https://web.archive.org/web/20050422130129/http://en.wikipedia.org:80/wiki/Multivariable_calculus'

>>> archive_close_to_2010_feb = wayback.near(year=2010, month=2)
>>> archive_close_to_2010_feb.archive_url
'https://web.archive.org/web/20100215001541/http://en.wikipedia.org:80/wiki/Multivariable_calculus'

>>> wayback.newest().archive_url
'https://web.archive.org/web/20210104173410/https://en.wikipedia.org/wiki/Multivariable_calculus'

Documentation at https://github.com/akamhy/waybackpy/wiki/Python-package-docs.

As a CLI tool

$ waybackpy --save --url "https://en.wikipedia.org/wiki/Social_media" --user_agent "my-unique-user-agent"
https://web.archive.org/web/20200719062108/https://en.wikipedia.org/wiki/Social_media

$ waybackpy --oldest --url "https://en.wikipedia.org/wiki/Humanoid" --user_agent "my-unique-user-agent"
https://web.archive.org/web/20040415020811/http://en.wikipedia.org:80/wiki/Humanoid

$ waybackpy --newest --url "https://en.wikipedia.org/wiki/Remote_sensing" --user_agent "my-unique-user-agent"
https://web.archive.org/web/20201221130522/https://en.wikipedia.org/wiki/Remote_sensing

CLI documentation is at https://github.com/akamhy/waybackpy/wiki/CLI-docs.

🛡 License

License: MIT

Released under the MIT License. See license for details.