婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python基于pyppeteer制作PDF文件

python基于pyppeteer制作PDF文件

熱門標簽:北京外呼電銷機器人招商 鄭州智能外呼系統中心 電銷機器人 金倫通信 400電話 申請 條件 云南地圖標注 crm電銷機器人 賓館能在百度地圖標注嗎 南京crm外呼系統排名 汕頭電商外呼系統供應商

Pyppeteer 是什么

介紹 Pyppeteer 之前,有必要先介紹一下 Puppeteer,Puppeteer 是谷歌官方出的一個通過DevTools協議控制headless Chrome的Node庫。通過Puppeteer可以直接控制Chrome瀏覽器模擬大部分用戶操作。

所謂Headless Chrome 就是 Chrome 瀏覽器的無界面形態。

而 Pyppeteer 就是 Puppeteer 的 Python 版本非官方實現,它是一位來自于日本的工程師依據 Puppeteer 的一些功能開發出來的非官方版本

Pyppeteer 采用了 Python 的 async 機制,需要Python3.5 及以上版本才支持。

Pyppeteer能做什么

但凡是需要通過Chrome瀏覽器手動完成的操作都可以通過 Pyppeteer 自動完成,例如:

  • 生成頁面截圖
  • 生成PDF文件
  • 抓取單頁面應用并生成預先呈現的內容
  • 從網站抓取你需要的內容
  • 自動表單提交,UI測試,鍵盤輸入等

截圖

例如將頁面生成截圖可以直接調用 page.screenshot 方法

import asyncio
from pyppeteer import launch

async def main():
 browser = await launch()
 page = await browser.newPage()
 await page.goto('https://foofish.net')
 await page.screenshot({'path': 'example.png'})
 await browser.close()

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

截圖功能在海報分享等場景用的多,有看過有贊工程師分享的一篇文章,就有用到Puppeteer來做海報分享,性能比Canvas高。

而將網頁轉換為PDF的應用場景更多,比如將網站博客、專欄,或者公眾號文章批量導出PDF,方便離線閱讀,比如我們最近做的一個醫療項目需要將用戶填寫的資料支持PDF形式批量導出,就是用的Pyppeteer

導出PDF

導出pdf直接調用page.pdf方法就可以, 代碼非常簡潔

import asyncio
from pyppeteer import launch

async def main():
 browser = await launch()
 page = await browser.newPage()
 await page.goto('https://foofish.net')
 await page.pdf({
  "path": "example.pdf", "format": 'A4'})
 await browser.close()

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

接下來我們以公眾號文章為例,將html頁面制作成一個PDF文件。

公眾號鏈接導出PDF示例

安裝 pyppeteer

pip install pyppeteer

任意找一篇公眾號的文章鏈接

 url = "https://mp.weixin.qq.com/s/6VBXs19icV0O5hT7cHYwgw"

完成代碼:

 browser = await launch(
  options={'headless': True,
     'args': ['--no-sandbox',
       '–disable-gpu',
       '–disable-dev-shm-usage',
       '–disable-setuid-sandbox',
       '–no-first-run',
       '–no-zygote',
       '–single-process'
       ]}, )
 page = await browser.newPage()
 url = "https://mp.weixin.qq.com/s/6VBXs19icV0O5hT7cHYwgw"
 await page.goto(url)
 file_name = "test.pdf"
 await page.pdf({"path": file_name, "format": 'A4'})
 await browser.close()

第一次運行的時候,會自動下載chromium瀏覽器,chromium是chrome的開源版本, 需要幾分鐘才能下載完

[W:pyppeteer.chromium_downloader] start chromium download.
Download may take a few minutes.
100%|██████████| 127496521/127496521 [00:2000:00, 6268578.80it/s]
[W:pyppeteer.chromium_downloader] 
chromium download done.
[W:pyppeteer.chromium_downloader] chromium extracted to: C:\Users\lzjun\AppData\Local\pyppeteer\pyppeteer\local-chromium\575458

執行完成后,我們來預覽下pdf文件

和原文鏈接對比,發現文章中的圖片丟失了。

通過分析,原來是頁面源代碼中,img 標簽沒有src屬性,只有個data-src 屬性,默認情況下圖片是無法正常顯示的,圖片之所有能在瀏覽器能正常展示出來,是有個js腳本動態地修改了dom元素為 img src='xxxx'>

這個網頁使用的是一種叫懶加載的技術展示圖片內容,所謂懶加載就是圖片不會一次全部下載完,而是當前瀏覽到什么位置,就加載該處的圖片,這樣能提高頁面的響應速度,同時減輕服務器性能。

所以,我們也可以通過js代碼模擬真人瀏覽網頁一樣,滾動鼠標,不停地往下滑動,將圖片動態加載出來。

最后,完整代碼就變成了這樣:

async def main():
    browser = await launch()
    page = await browser.newPage()
    url = "https://mp.weixin.qq.com/s/6VBXs19icV0O5hT7cHYwgw"
    await page.goto(url)
    await page.evaluate('''async () => {
                    await new
                Promise((resolve, reject) => {
                    var
                totalHeight = 0;
                var
                distance = 100;
                var
                timer = setInterval(() => {
                    var
                scrollHeight = document.body.scrollHeight;
                window.scrollBy(0, distance);
                totalHeight += distance;

                if (totalHeight >= scrollHeight){
                clearInterval(timer);
                resolve();
                }
                }, 100);
                });
        }''')
    await page.pdf({
        "path": "test.pdf", "format": 'A4'})
    await browser.close()

if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(main())

將js 代碼封裝成一個字符串當作參數傳給 page.evaluate 函數, 該代碼就是獲不斷滾動頁面,直到頁面底部為止。這樣整個頁面的圖片就全部加載出來了。

效果看起來還不錯,和原頁面的樣式是一樣的

在Pyppeteer實踐應用過程中,也遇到不少坑,最后都逐個解決了,這可以單獨寫一篇文章,如果你在使用過程中遇到任何問題歡迎與我交流

以上就是python基于pyppeteer制作PDF文件的詳細內容,更多關于python pyppeteer制作PDF文件的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python爬蟲 Pyppeteer使用方法解析
  • python爬蟲神器Pyppeteer入門及使用
  • python pyppeteer 破解京東滑塊功能的代碼
  • 詳解pyppeteer(python版puppeteer)基本使用
  • python爬蟲之pyppeteer庫簡單使用

標簽:梅州 文山 浙江 西寧 錫林郭勒盟 石家莊 昆明 懷化

巨人網絡通訊聲明:本文標題《python基于pyppeteer制作PDF文件》,本文關鍵詞  python,基于,pyppeteer,制作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python基于pyppeteer制作PDF文件》相關的同類信息!
  • 本頁收集關于python基于pyppeteer制作PDF文件的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    7777精品伊人久久久大香线蕉的 | 91精品国产高清一区二区三区蜜臀| 国产91精品欧美| 亚洲1区2区3区4区| 国内精品在线播放| 91精品国产美女浴室洗澡无遮挡| 亚洲五月六月丁香激情| 91麻豆国产精品久久| 久久精品国产精品亚洲精品| 婷婷久久综合九色综合绿巨人| 国产偷v国产偷v亚洲高清| 三级欧美韩日大片在线看| 欧美丰满高潮xxxx喷水动漫| 亚洲男人都懂的| 欧美三区在线视频| 日韩电影在线观看电影| 精品99一区二区| 中文字幕一区二区视频| 99亚偷拍自图区亚洲| 91激情在线视频| 成人免费福利片| 91丨porny丨国产入口| 成人网在线播放| 国产午夜精品一区二区| 91天堂素人约啪| 亚洲一区二区三区三| 3d动漫精品啪啪| 国产呦萝稀缺另类资源| 国产精品免费观看视频| 一本久久a久久免费精品不卡| 亚洲一二三四在线| 日韩三级伦理片妻子的秘密按摩| 国产精品99久久久久久久vr| 国产亚洲福利社区一区| 欧美日韩一区二区三区在线| 国产精品99精品久久免费| 亚洲最新在线观看| 精品国产成人系列| 色婷婷香蕉在线一区二区| 久久国产人妖系列| 在线不卡的av| 一区二区日韩av| 国产成都精品91一区二区三| 一区二区三区免费| www日韩大片| 在线视频你懂得一区二区三区| 亚洲国产精品久久一线不卡| 日本国产一区二区| 久久久一区二区三区捆绑**| 在线一区二区视频| 国产电影一区二区三区| 午夜精品国产更新| 亚洲三级视频在线观看| 国产欧美日本一区视频| 日韩免费成人网| 欧美日韩黄色一区二区| 色综合久久精品| 久久久久久99精品| 亚洲一级二级三级在线免费观看| 97精品久久久午夜一区二区三区 | 亚洲国产精品久久久久婷婷884| 久久久亚洲综合| 欧美一区国产二区| 欧美久久免费观看| 欧美久久免费观看| 51精品久久久久久久蜜臀| 欧美日韩一区二区在线观看视频| 色婷婷av一区二区三区软件| 欧美一级理论片| 国产乱码一区二区三区| 亚洲卡通欧美制服中文| 91小宝寻花一区二区三区| 成人a级免费电影| 国产精品一区二区无线| 欧美mv日韩mv| 欧美日韩性生活| 日韩精品国产精品| 久久久久久久久久电影| 蜜桃视频第一区免费观看| 天堂影院一区二区| 精品对白一区国产伦| 欧美日韩一级二级三级| 日本美女一区二区| 欧美喷水一区二区| 狠狠色狠狠色合久久伊人| 成人一级视频在线观看| 亚洲成人资源网| 亚洲一区二区三区国产| 在线播放91灌醉迷j高跟美女 | 日韩欧美国产成人一区二区| 亚洲一区在线观看视频| 欧美一区二区大片| 欧美日韩国产片| 日韩欧美一级在线播放| 欧美高清一级片在线观看| 亚洲欧美另类小说| 欧美日韩久久一区二区| 成人欧美一区二区三区| 国产mv日韩mv欧美| 亚洲欧洲一区二区在线播放| 精品成人一区二区| 久久久亚洲欧洲日产国码αv| 久久久久国色av免费看影院| 亚洲精品亚洲人成人网| 免费不卡在线观看| 成人毛片老司机大片| 在线观看一区二区视频| 日韩欧美资源站| 国产亚洲短视频| 亚洲成av人片www| 久久精品国产**网站演员| 成人精品小蝌蚪| 欧美日韩精品系列| 久久久久久久久久美女| 国产精品高潮久久久久无| 亚洲一卡二卡三卡四卡无卡久久 | av在线不卡免费看| 欧美高清视频一二三区| 欧美高清一级片在线观看| 天堂在线亚洲视频| 色噜噜狠狠色综合欧洲selulu| 色婷婷亚洲婷婷| 国产欧美日韩综合| 麻豆国产精品视频| 成人激情综合网站| 久久久精品国产99久久精品芒果| 一区二区三区欧美亚洲| 国产高清不卡一区二区| 欧美日韩精品二区第二页| 久久精品在这里| 日精品一区二区| 在线精品视频免费播放| 国产精品天干天干在观线| 日韩中文欧美在线| 99久久国产综合精品色伊| 久久老女人爱爱| 久久一二三国产| 色狠狠色狠狠综合| 国产精品久久影院| 国产一区视频导航| 日韩欧美一区二区免费| 婷婷六月综合网| 日韩一区二区不卡| 香港成人在线视频| 在线看日本不卡| 亚洲一区二区3| 在线日韩一区二区| 一区二区三区中文在线观看| 99精品偷自拍| 椎名由奈av一区二区三区| 激情另类小说区图片区视频区| 日韩专区在线视频| 免费人成精品欧美精品| 欧美精品一区二区三区在线播放 | 成人av电影在线播放| 亚洲男女一区二区三区| 久88久久88久久久| 免费成人在线网站| 日本在线不卡视频| 久久精品视频一区二区三区| www.成人在线| 日本一区二区在线不卡| 欧美视频在线一区| 波多野结衣亚洲| 一区二区在线免费观看| 欧美日韩一级二级| 婷婷中文字幕一区三区| 国产视频一区在线观看| 国产麻豆精品在线| 精品国产91乱码一区二区三区 | 色又黄又爽网站www久久| 亚洲自拍偷拍九九九| 久久男人中文字幕资源站| 九九热在线视频观看这里只有精品| 欧美丰满高潮xxxx喷水动漫| 久久蜜桃一区二区| 91色婷婷久久久久合中文| 水蜜桃久久夜色精品一区的特点| 久久综合九色综合久久久精品综合| 精品嫩草影院久久| 成人免费观看av| 国内精品视频一区二区三区八戒| 无码av中文一区二区三区桃花岛| 亚洲午夜精品17c| 天天综合天天综合色| 免费的成人av| 亚洲最大成人网4388xx| 国产a级毛片一区| 26uuu色噜噜精品一区| 国产农村妇女毛片精品久久麻豆| 日本不卡视频在线观看| 亚洲一区二区美女| 色综合久久久久综合99| 色婷婷激情一区二区三区| 91色porny| 欧美日韩视频一区二区| 欧美日韩中文字幕一区二区| 777午夜精品视频在线播放| www国产成人免费观看视频 深夜成人网| 国产亚洲污的网站|