Skip to main content

Download web pages and files from the internet using CLI or as a Python module.

Project description

net-dl

Download web pages and files from the internet. Can be used as a standalone CLI command, or as a python module.

Project README

Installation

End Users (with pipx)

python3 -m pip install pipx
pipx install net-dl

Dev Users (with pip)

python3 -m pip install net-dl

Usage

CLI command

~$ # print content to stdout if text/html/json/xml
~$ net-dl 'https://httpbin.org/json'
{
  "slideshow": {
    "author": "Yours Truly", 
    "date": "date of publication", 
    "slides": [
      {
        "title": "Wake up to WonderWidgets!", 
        "type": "all"
      }, 
      {
        "items": [
          "Why <em>WonderWidgets</em> are great", 
          "Who <em>buys</em> WonderWidgets"
        ], 
        "title": "Overview", 
        "type": "all"
      }
    ], 
    "title": "Sample Slide Show"
  }
}

~$ # save content to disk if file
~$ net-dl 'https://httpbin.org/image/svg'
 [...................................                                     ]  50%

Python module

Built-in progress bar

>>> import net_dl
>>> url = 'https://httpbin.org/image/svg'
>>> dl = net_get.Download(url)
>>> dl.get()
 [........................................................................] 100%
0
>>> import logging
>>> l = logging.get_logger()
>>> l.setLevel(logging.INFO)
>>> dl.get()
INFO:root:File already exists: /home/nate/g/net-dl/svg
0
>>>

External progress bar
demo/tkapp.py:

from net_dl import Download
from queue import Queue
from threading import Thread
from tkinter import IntVar
from tkinter import StringVar
from tkinter import Tk
from tkinter import ttk


class Win(ttk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.root = root
        self.root.title("net-dl demo")

        self.urlv = StringVar()
        self.urlw = ttk.Entry(self, textvariable=self.urlv)
        self.getw = ttk.Button(self, text="Get", command=self.get)
        self.progq = Queue()
        self.progv = IntVar()
        self.proge = '<<UpdateProgress>>'
        self.root.bind(self.proge, self.update_progress)
        self.progw = ttk.Progressbar(
            self,
            mode='determinate',
            variable=self.progv,
            )

        self.grid(column=0, row=0, sticky='nesw')
        self.urlw.grid(column=0, row=0, columnspan=4, sticky='we')
        self.getw.grid(column=4, row=0)
        self.progw.grid(column=0, row=1, columnspan=5, sticky='we')

    def get(self):
        dl = Download(
            self.urlv.get(),
            progress_queue=self.progq,
            callback=self.root.event_generate,
            callback_args=[self.proge],
            )
        self.get_thread = Thread(target=dl.get, daemon=True)
        self.get_thread.start()

    def update_progress(self, evt):
        self.progv.set(self.progq.get())


def run():
    root = Tk()
    Win(root)
    root.mainloop()

Run code:

demo$ python -c 'import tkapp; tkapp.run()'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

net_dl-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

net_dl-0.1.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file net_dl-0.1.1.tar.gz.

File metadata

  • Download URL: net_dl-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for net_dl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4722ca8247f8e1dcc3b0200b445dc68007ea4d2b4acc281f085ef05c1c402f57
MD5 b3e1c093aacac1689d11e31a8e4d82b8
BLAKE2b-256 b427f8051085ca0e06a45bf88f3dec79c0b32f827c9930fbd0a9de3d3e17eb81

See more details on using hashes here.

File details

Details for the file net_dl-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: net_dl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for net_dl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9610cd9230d64d0b57b49a27671f7d661ecf3a0ed982e141ad372c970ea59f7
MD5 f5da107208efc7afa53c6f266071b117
BLAKE2b-256 59ac31e43714ead01a838661a0f5e9805fac9e745d86fdd53c9ae80a3e3ea50c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page