【问题标题】:Downloading pdf files using playwright-python使用 playwright-python 下载 pdf 文件
【发布时间】: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


【解决方案1】:

对于任何有类似问题的人,请尝试使用 firefox 或 webkit 代替 chromium 浏览器。为我提供了解决方法。

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 2020-07-09
    • 2022-10-21
    • 2022-01-23
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多