網頁截圖API接口,一鍵自動生成網頁截圖


背景

最近在開發一個小程序,其中有一個幫助模塊,內容為幫助文章列表,文章內容為網站后台編輯的富文本格式。鑒於小程序的特殊性,其對html格式的富文本支持並不友好。

剛開始有人開發了wxparse插件,后來微信提供了rich-text組件,但是這兩者存在一些問題。

 

思路

后台編輯的文章樣式經過wxparse或者richtext組件顯示后,都存在一些兼容性問題。如果我們將文章內容做成圖片,然后用image來下顯示應該可以達到比較理想的效果。

但是沒一篇文章都找美工區設計一張圖片費時費力,修改還費勁。

如果我們后台編輯的文章能自動生成一個圖片就完美了。

 

方案

查詢后發現國外網站thumb.io提供了類似的服務,可以利用API接口將指定地址保存為圖片。但是經過測試發現圖片並不清晰,而且訪問速度非常慢。然后我就自己安裝了phantomjs並進行了測試,效果比較理想。

 

用phantomjs保存的百度首頁截圖

為了實現自動化,我還做成了web api。通過將對應文章的網址發送到指定的api就可以自動生成截圖(異步方式)。具體方法就是有截圖請求的時候,將請求保存到數據庫,然后服務器上跑一個程序挨個執行截圖操作,截圖后修改對應請求的狀態。

 

---------------------------------------------------- 

 

API接口({}中的內容為參數值)

使用方法:將需要截圖的網址傳遞到通過生成截圖請求接口,一段時間(建議10秒)后再通過查詢接口查詢,如果返回的code=0,status=1的時候,直接將thumb保存到本地即可。

生成截圖請求:http://thumb.loxn.cn/?url={URL}  

      說明:URL參數必須進行urlencode,否則可能出錯

      實例:http://thumb.loxn.cn/?url=http%3a%2f%2fwww.cnblogs.com%2fdragondean%2f

      返回:JSON格式

         code    0 成功,1 網址格式錯誤, 2 網址已存在

         msg    錯誤信息(僅code不為0是存在)

         task_id   任務ID,查詢狀態時需要用到(code為0或者2時)

         key    查詢秘鑰,查詢狀態時需要用到(code為0或者2時)

         status    任務狀態,如果任務已存在則會返回此狀態,-1表示失敗,0表示處理中,1表示已完成

         thumb    截圖地址,可直接將此圖片下載到本地 (code為2且status為1時)

          err_msg   錯誤信息,僅status=-1時存在

 

查詢任務狀態:http://thumb.loxn.cn/?a=query&task_id={TASK_ID}&key={KEY}

      說明:task_id和key都是生成請求時返回,必填

      實例:http://thumb.loxn.cn/?a=query&task_id=1&key=eb8578633e5cb22377ee85641204494f

      返回:JSON

        code    返回狀態,0成功,3 任務不存在,4 查詢秘鑰錯誤

        status    code為0時,status=-1表示失敗,status=0表示處理中,status=1表示已完成

        thumb   code位0且status為1時,截圖地址,可直接將此圖片下載到本地

        err_msg   錯誤信息,僅status=-1時存在

 ---------------------------------------------------- 

接口暫時為測試狀態,隨時可能發生變化或者變更,屆時將在此文章更新,請及時關注。也可以加入QQ群563752274獲得最新的進展。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM