keil生成hex文件找不到_骚操作!用Python把公众号文章打包成pdf文件,再也不怕找不到了...
背景
做自媒體的人,尤其是做了一年甚至更久的自媒體人,尤其是通過自媒體還有一些小收入的人,他們最怕自己的公眾號內容因為各種原因而丟失,那就太可怕了! 在做自媒體內容上花了太多心血,如果突然一下就沒了,那打擊是相當大的,所以備份好自己的成果是非常重要的.
像我之前沒有這方面意識,最近我做了一個小工具,把公眾號文章打包成pdf文件,然后保存到本地,免去后顧之憂.
其實我之前寫過了相關的文章,但那個時候寫的還不是很好,不算完美,因為打包出來的文件,看不到圖片,所以一直覺得有瑕疵!
在看這篇文章之前可以看之前的這兩篇, 這樣你看這篇文章就不會覺得很突然.
用Python抓取某大V的公眾號文章
Python抓取公眾號文章并生成pdf文件保存到本地
最近我終于把這個瑕疵給解決了, 另外再解決了其它的幾個問題,算是比較完美的升級吧!
先看效果圖:
有目錄,有圖片。
解決圖片顯示問題,先看生成的pdf文件樣子
其實直接獲取到公眾號文章的url就可以通過pdfkit工具包來生成一個pdf文件,但是這樣獲取出來的pdf文件圖片是顯示不出來的。
因為公眾號文章里的圖片是用data-src來標記的,這在pdf中是不能顯示圖片,所以我在這里把,data-src替換成了src,然后圖片就可以顯示出來.
def create_article_content(self, url, text): """文章內容""" str = '點擊查看公眾號原文'.format( url) + text.replace('data-src', 'src') return str這部分代碼的含義: url 是公眾號原文鏈接,text 是公眾號網頁內容這里面包含了樣式.
因為我把內容抓取過來后,我還想去點擊原文,所以有了這個超鏈接,像上面圖片中的【點擊查看公眾號原文】,再看看如何生成pdf文件.
生成pdf文件
單篇文章生成一個文件
每篇文章就是一個文件,但這種生成文件的方式比較慢,好處就是每篇文章單獨成一個文件. 看效果圖:
具體代碼如下:
def creat_pdf_file(self, title, html_content): html = 'tmp.html' # 這里是存放臨時html文件with open(html, 'w', encoding='utf-8') as f: # 點擊open函數查看用法,這里是寫入不要搞錯了 f.write(html_content)try: output_file = 'D:/gzh2/{}.pdf'.format(title)if not os.path.exists(output_file): # 過濾掉重復文件 pdfkit.from_file(html, output_file, configuration=self.config, ) # 注意這里需要配置一下wkhtmltopdfexcept Exception as e: print(sys._getframe().f_code.co_name) print(e)finally: os.remove(html)title是文件名, html_content是文件內容,這里把文件內容定稿到一個臨時的html文件中,然后把這個臨時的html文件用pdfkit工具轉換成pdf文件.
所有文章生成一個文件
這里是把所有的html文件內容組成一個數組,然后把這些內容列表轉換成html的文件列表,然后把html文件列表放到pdfkit中轉換成一個pdf文件,這個好處就是比較快速,但是所有的文件都放到一個文件中,感覺不利于閱讀,也看各人喜好吧,效果圖如下:
看代碼
def creat_pdf_file(self): htmls = []for index, file in enumerate(self.html_contents): html = '{}.html'.format(index) # 這里是存放臨時html文件 with open(html, 'w', encoding='utf-8') as f: # 點擊open函數查看用法,這里是寫入不要搞錯了 f.write(file) htmls.append(html)try: output_file = 'D:/gzh2/{}_的原創文章_第【{}-{}】篇.pdf'.format(self.gzh_name, (self.index_part - 1) * self.part_offset + 1,self.index_part * self.part_offset)if not os.path.exists(output_file): # 過濾掉重復文件 pdfkit.from_file(htmls, output_file, configuration=self.config, ) # 注意這里需要配置一下wkhtmltopdf except Exception as e:print(sys._getframe().f_code.co_name)print(e)finally:self.html_contents = [] # 生成文件后,清空緩存for file in htmls: os.remove(file)注意點
我這里是用Charles來通過抓數據來進行分析的,其中獲取文件的接口列表與cookie會有變化的,每次請求不同公眾號,這里面的數據也不會相同,所以不管了,直接復制charles里的 url和cookie就好了, 所以你不能直接用我代碼里的的cookie和base_url
看下面的圖:
最后完整代碼,關注,轉發,后臺私信小編“01”獲取,公眾號回復,贈送Python學習資料。
總結
以上是生活随笔為你收集整理的keil生成hex文件找不到_骚操作!用Python把公众号文章打包成pdf文件,再也不怕找不到了...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 合并分支时有的文件删除了_GitGith
- 下一篇: python sklearn下载了但是引