如何使用 Playwright 下载 PDF 文件? (Python)
How to download PDF files with Playwright? (Python)
我正在尝试使用 Playwrgith 自动下载 PDF 文件,我的代码使用 Selenium,但 Playwright 中的一些功能引起了我的注意。真正的问题the documentation
没有帮助。当我点击下载时,我得到这个:
而且我无法更改下载目录,它还会在 browser/context 关闭时删除“文件”。使用 Playwright 我可以实现不错的下载自动化?
代码:
def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.new_context(accept_downloads=True)
# Open new page
page = context.new_page()
# Go to http://xcal1.vodafone.co.uk/
page.goto("http://xcal1.vodafone.co.uk/")
# Click text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img
with page.expect_download() as download_info:
page.click("text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img")
download = download_info.value
path = download.path()
download.save_as(path)
print(path)
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
playwright中的download.path()
只是一个随机的GUID(全局唯一标识符)。它旨在验证下载工作 - 而不是保留文件。
Playwright 是一个测试工具,想象一下 运行 在每个主要浏览器上对每个代码更改进行测试 - 任何下载都会很快占用大量 space,如果你需要它会把人砍掉手动清除它们。
好消息是你非常接近 - 如果你想保留文件你只需要在 save_as
.
中给文件命名
而不是这个:
download.save_as(path)
使用这个:
download.save_as(download.suggested_filename)
这会将文件保存在与脚本相同的位置。
我正在尝试使用 Playwrgith 自动下载 PDF 文件,我的代码使用 Selenium,但 Playwright 中的一些功能引起了我的注意。真正的问题the documentation
没有帮助。当我点击下载时,我得到这个:
而且我无法更改下载目录,它还会在 browser/context 关闭时删除“文件”。使用 Playwright 我可以实现不错的下载自动化?
代码:
def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.new_context(accept_downloads=True)
# Open new page
page = context.new_page()
# Go to http://xcal1.vodafone.co.uk/
page.goto("http://xcal1.vodafone.co.uk/")
# Click text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img
with page.expect_download() as download_info:
page.click("text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img")
download = download_info.value
path = download.path()
download.save_as(path)
print(path)
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
playwright中的download.path()
只是一个随机的GUID(全局唯一标识符)。它旨在验证下载工作 - 而不是保留文件。
Playwright 是一个测试工具,想象一下 运行 在每个主要浏览器上对每个代码更改进行测试 - 任何下载都会很快占用大量 space,如果你需要它会把人砍掉手动清除它们。
好消息是你非常接近 - 如果你想保留文件你只需要在 save_as
.
而不是这个:
download.save_as(path)
使用这个:
download.save_as(download.suggested_filename)
这会将文件保存在与脚本相同的位置。