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.
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)
Built Distribution
net_dl-0.1.1-py3-none-any.whl
(10.2 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4722ca8247f8e1dcc3b0200b445dc68007ea4d2b4acc281f085ef05c1c402f57 |
|
MD5 | b3e1c093aacac1689d11e31a8e4d82b8 |
|
BLAKE2b-256 | b427f8051085ca0e06a45bf88f3dec79c0b32f827c9930fbd0a9de3d3e17eb81 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9610cd9230d64d0b57b49a27671f7d661ecf3a0ed982e141ad372c970ea59f7 |
|
MD5 | f5da107208efc7afa53c6f266071b117 |
|
BLAKE2b-256 | 59ac31e43714ead01a838661a0f5e9805fac9e745d86fdd53c9ae80a3e3ea50c |