首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能获得pdf页面使用pyppeteer?

是否有可能获得pdf页面使用pyppeteer?
EN

Stack Overflow用户
提问于 2022-01-14 17:52:28
回答 2查看 942关注 0票数 1
代码语言:javascript
复制
import asyncio
import pyppeteer
import logging
from pyppeteer import launch

pyppeteer.DEBUG = True
for name in logging.root.manager.loggerDict:
    logging.getLogger(name).disabled = True

async def main():
    browser = await launch(headless = False)
    page = await browser.newPage()
    await page.setJavaScriptEnabled(True)
    response = await page.goto('http://www.africau.edu/images/default/sample.pdf',
                                time = 3000, waitUntil = ['domcontentloaded', 'load', 'networkidle0'])
    content = await response.buffer()
    print(content)
    await browser.close()

asyncio.get_event_loop().run_until_complete(main())

预期产出:http://www.africau.edu/images/default/sample.pdf的内容

输出: b'df48fcc4-a0b0-4e86-b52e-0ec012ee791e‘

Python 3,Linux Ubuntu

EN

回答 2

Stack Overflow用户

发布于 2022-01-18 10:56:24

我建议使用pyppdf,它是Puppeteer的Python。

代码语言:javascript
复制
conda install -c defaults -c conda-forge pyppdf
OR
pip install pyppdf

它有一个方便的函数save_pdf

def save_pdf(output_file: str=None,url: str=None,html: str=None,args_dict: Unionstr,dict=None,args_upd: Unionstr,dict=None,goto: str=None,dir_:str=None) ->字节:

或者你可以简单的

代码语言:javascript
复制
await page.screenshot({'path': 'ss.png'})
await page.pdf({'path': 'sample.pdf'})
票数 0
EN

Stack Overflow用户

发布于 2022-01-23 12:08:48

我知道您要求使用pyppeteer解决方案,但老实说,使用requests可以更容易地做到这一点。

代码语言:javascript
复制
import requests


def main():
    r = requests.get("http://www.africau.edu/images/default/sample.pdf")
    with open("sample.pdf", "wb") as file:
        file.write(r.content)

if __name__ == "__main__":
    main()

这就是您的所有文件将保存在一个名为sample.pdf的文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70714677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档