【发布时间】:2021-03-19 09:20:02
【问题描述】:
我正在尝试使用playwright (Python) 下载在浏览器中呈现的 PDF 文件(未显示为弹出窗口或下载)。没有公开 URL,因此您不能简单地抓取链接并使用 requests.get("file_url") 下载它。
我试过了:
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
page = await browser.newPage(acceptDownloads=True)
await page.goto("www.some_landing_page.com")
async with page.expect_download() as download_info:
await page.click("a") # selector to a pdf file
download = download_info.value
path = download.path()
我也试过page.expect_popup() 也没有运气。我的理解是使用pyppeteer 无法做到这一点,但如果可能的话,也欢迎以这种方式解决。
【问题讨论】:
-
您是否有在浏览器中呈现 pdf 的页面示例,您想检索?
-
哇,这个网站不想被抓取。它们包括一个
debugger语句,该语句在打开开发工具时立即暂停所有 JS 的执行 -
您能否在下面添加
download.save_as(path="file.pdf")并查看文件是否已下载?我做了类似的事情并在我身上工作。如果不起作用,也许可以提供着陆页 URL,我们可以提供更多帮助 -
@ÇağatayBarın 我也试过了。花了一些时间,看来 Playwright 中存在错误。使用 firefox 或 webkit(在 headless 和 headful 模式下)可以正常工作,但使用 chromium 会引发错误“子树拦截指针事件”。
标签: python-3.x playwright pyppeteer playwright-python