【发布时间】:2022-11-09 02:00:38
【问题描述】:
我正在寻求使用 Playwright 抓取网页。
我加载页面,并成功单击 Playwright 的下载按钮。这将打开一个打印对话框,其中选择了打印机。
我想选择“另存为 PDF”,然后单击“保存”按钮。
这是我当前的代码:
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
playwright_page = browser.new_page()
got_error = False
try:
playwright_page.goto(url_to_start_from)
print(playwright_page.title())
html = playwright_page.content()
except Exception as e:
print(f"Playwright exception: {e}")
got_error = True
if not got_error:
soup = BeautifulSoup(html, 'html.parser')
#download pdf
with playwright_page.expect_download() as download_info:
playwright_page.locator("text=download").click()
download = download_info.value
path = download.path()
download.save_as(DOWNLOADED_PDF_FOLDER)
browser.close()
有没有办法使用 Playwright 做到这一点?
【问题讨论】:
-
好的,是的,你是对的。我有
headless= False,所以我可以看到发生了什么。但是我还不确定“一个命令行打印到 PDF 输出”的想法。我设置了headless= True和playwright_page.locator("text= download").click()超时等待事件“下载”。您能否发布您想到的代码行作为答案?然后我可以实施它们并将您的答案标记为已接受。 -
我对这个主题不够了解,无法掌握您要传达的内容。我不知道如何通过 Playwright 进入浏览器。如果您可以发布几行代码,那将非常有帮助。
-
我已将更多现有代码添加到原始帖子中。可能与 Playwright 合作过的人可以提供示例代码来完成此操作。与此同时,我将按照您推荐的路线进行研究。
-
@KJ,您对
set headless = True的建议非常有帮助。由于在无头模式下应该没有 UI,Chrome 甚至不会创建打印对话框。还有其他一些故障使我最初无法使其正常工作,但现在我已经解决了。请以答案的形式发布您的建议,我会将其标记为已接受。 -
好的。好吧,如果您只是发布一个答案,例如“如果您使用 headless=True,您将不会获得打印对话框”,我会将其标记为已接受。 :)
标签: automation download playwright headless-browser playwright-python