pip install selenium
app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service import time import base64 import os # Get the full path to chromedriver in the same directory current_dir = os.path.dirname(os.path.abspath(__file__)) chromedriver_path = os.path.join(current_dir, "chromedriver.exe") # Set Chrome options chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--window-size=1280,720') # required for full screenshots # Create Chrome driver with explicit path service = Service(executable_path=chromedriver_path) driver = webdriver.Chrome(service=service, options=chrome_options) # Load webpage url = "https://google.com" driver.get(url) time.sleep(2) # Save screenshot as PNG driver.save_screenshot("screenshot.png") print("Saved screenshot.png") # Generate PDF using DevTools Protocol (headless mode required) pdf_data = driver.execute_cdp_cmd("Page.printToPDF", { "printBackground": True }) # Save PDF with open("screenshot.pdf", "wb") as f: f.write(base64.b64decode(pdf_data['data'])) print("Saved screenshot.pdf") driver.quit() |