ホームページ >バックエンド開発 >PHPチュートリアル >Python と WebDriver を使用して Web ページをキャプチャし、PDF ファイルとして保存する
Python と WebDriver を使用して Web ページのスクリーンショットを実装し、PDF ファイルとして保存する
要約:
Web 開発とテストのプロセスでは、分析のために Web ページのスクリーンショットを作成する必要があることがよくあります。記録とレポート。この記事では、Python と WebDriver を使用して Web ページのスクリーンショットを撮り、そのスクリーンショットを PDF ファイルとして保存して簡単に共有したりアーカイブしたりする方法を紹介します。
1. Selenium WebDriver のインストールと構成:
2. Python コードを作成します:
以下は、WebDriver を使用して指定された URL の Web ページをインターセプトし、PDF ファイルとして保存する完全な Python コードの例です。
from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.chrome.options import Options from selenium.common.exceptions import WebDriverException # 设置Chrome浏览器选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无界面模式 chrome_options.add_argument("--disable-gpu") def save_webpage_as_pdf(url, save_path): try: # 创建浏览器实例 driver = webdriver.Chrome(options=chrome_options) # 调整窗口大小以适应网页 driver.set_window_size(1280, 800) # 访问网页 driver.get(url) # 等待页面加载完成 driver.implicitly_wait(5) # 获取网页高度 total_height = driver.execute_script("return document.body.scrollHeight") # 将页面切成多个视口,每个视口高度为800 viewports = int(total_height / 800) + 1 # 初始化PDF打印选项 driver.execute_script("document.body.style.webkitPrintColorAdjust='exact'") driver.execute_script("document.body.style.background='white'") driver.execute_script("window.scrollTo(0, 0)") # 逐个截取每个视口并保存为PDF for i in range(viewports): # 设置视口位置,每次向下滚动800像素 driver.execute_script(f"window.scrollTo(0, {i * 800})") # 截图并保存为图片文件 driver.save_screenshot(f"{save_path}_{i}.png") # 关闭浏览器 driver.quit() # 使用Python库将截图合并为PDF from PIL import Image image_files = [f"{save_path}_{i}.png" for i in range(viewports)] images = [Image.open(img) for img in image_files] images[0].save(f"{save_path}.pdf", "PDF", save_all=True, append_images=images[1:]) # 删除临时图片文件 import os for img in image_files: os.remove(img) print(f"截图成功,并保存为PDF文件:{save_path}.pdf") except WebDriverException as e: print(f"截图失败:{e}") # 调用截图函数 save_webpage_as_pdf("https://www.example.com", "example_webpage")
3. コード分析:
webdriver.Chrome()
メソッドを呼び出して Chrome ブラウザ インスタンスを作成し、chrome_options## を使用します。 # パラメータ インターフェースレスモードを設定します。
メソッドを使用して、Web ページに合わせてブラウザ ウィンドウのサイズを設定します。
メソッドを使用して、指定された URL にアクセスします。
メソッドを使用して、現在のブラウザ ページをインターセプトし、画像ファイルとして保存します。
ライブラリを使用して、スクリーンショットを PDF に結合します。
この記事では、Python と WebDriver を使用して Web ページのスクリーンショットを撮り、そのスクリーンショットを PDF ファイルとして保存する方法を紹介します。 WebDriver の構成と使用を通じて、Web ページのスクリーンショットを簡単に取得し、Python の画像処理ライブラリを使用して複数のスクリーンショットを PDF ファイルに結合し、Web コンテンツの完全な保存と共有を実現できます。この方法は、Web 開発およびテスト中のシナリオのデバッグ、記録、レポートに広く使用され、作業効率と精度を向上させることができます。
以上がPython と WebDriver を使用して Web ページをキャプチャし、PDF ファイルとして保存するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。