mirror of
https://github.com/hastagAB/Awesome-Python-Scripts.git
synced 2024-11-27 14:01:09 +00:00
957f7ab45c
* Download page as PDF. * Contributor name. * Pudim page typo.
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
import argparse
|
|
import pyppdf
|
|
import re
|
|
from pyppeteer.errors import PageError, TimeoutError, NetworkError
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description = 'Page Downloader as PDF')
|
|
parser.add_argument('--link', '-l', action = 'store', dest = 'link',
|
|
required = True, help = 'Inform the link to download.')
|
|
parser.add_argument('--name', '-n', action = 'store', dest = 'name',
|
|
required = False, help = 'Inform the name to save.')
|
|
|
|
arguments = parser.parse_args()
|
|
|
|
url = arguments.link
|
|
|
|
if not arguments.name:
|
|
name = re.sub(r'^\w+://', '', url.lower())
|
|
name = name.replace('/', '-')
|
|
else:
|
|
name = arguments.name
|
|
|
|
if not name.endswith('.pdf'):
|
|
name = name + '.pdf'
|
|
|
|
print(f'Name of the file: {name}')
|
|
|
|
try:
|
|
pyppdf.save_pdf(name, url)
|
|
except PageError:
|
|
print('URL could not be resolved.')
|
|
except TimeoutError:
|
|
print('Timeout.')
|
|
except NetworkError:
|
|
print('No access to the network.')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|