123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # !/usr/bin/env python
- from selenium import webdriver
- from webdriver_manager.chrome import ChromeDriverManager
- import json
- import requests
- # article url
- # URL = "https://www.geeksforgeeks.org/what-can-i-do-with-python/"
- def get_driver():
- # chrome options settings
- chrome_options = webdriver.ChromeOptions()
- settings = {
- "recentDestinations": [
- {"id": "Save as PDF", "origin": "local", "account": ""}
- ],
- "selectedDestinationId": "Save as PDF",
- "version": 2,
- }
- prefs = {
- "printing.print_preview_sticky_settings.appState": json.dumps(settings)
- }
- chrome_options.add_experimental_option("prefs", prefs)
- chrome_options.add_argument("--kiosk-printing")
- # launch browser with predefined settings
- browser = webdriver.Chrome(
- executable_path=ChromeDriverManager().install(), options=chrome_options
- )
- return browser
- def download_article(URL):
- browser = get_driver()
- browser.get(URL)
- # launch print and save as pdf
- browser.execute_script("window.print();")
- browser.close()
- if __name__ == "__main__":
- URL = input("provide article URL: ")
- # check if the url is valid/reachable
- if requests.get(URL).status_code == 200:
- try:
- download_article(URL)
- print("Your article is successfully downloaded")
- except Exception as e:
- print(e)
- else:
- print("Enter a valid working URL")
|