1. 程式人生 > >Python---微信公眾號或網頁自動匯出

Python---微信公眾號或網頁自動匯出

背景

從來沒有這麼粉過一位公眾號作者,嗯。。。確切的說是女朋友那天和我說喜歡看一位公眾號的作者,然後覺得微信的機制很不好,每次都要翻啊翻,想想有個辦法能匯出就好了。網上確實有人在做這件事,不過是收費的,具體是誰博主就不點名啦。額。。。我好想能做出來,話不多說,我先試為敬。

所以呢本文主要就是來說說,如何把自己喜歡的網頁匯出成為pdf,自己喜歡的公眾號匯出成pdf,讓自己隨時想看隨時看,不受微信的約束,不受各個網站流量的約束。

展示效果

auto_scroll_small
auto_crop

專案地址

思路

其實微信這個平臺流量巨大,微信想怎麼限制怎麼限制,比如最近封殺抖音,還有和支付寶的戰爭。所以其實微信對於反爬,等一些功能做了比較好的限制。
正面突破也是可以,如何攻破微信的一項一項障礙,最終直接爬取。
本文的總體思路如下:
利用python webdriver庫來動態的滾動網頁,然後自動截圖,儲存。
然後利用截圖進行裁切,計算頁面大小,存為pdf

環境

  • Python3
  • webdriver(安裝詳見:官網地址)
  • pillow圖片載入庫
pip install pillow

嗯。。。別的暫時還沒想起來

關鍵程式碼擷取

init_filelist()
    #首先初始化webdirver
    driver = webdriver.Chrome()
    #設定輸出路徑
    dir = './result'

    for item in filelist:
        try:
            #獲取圖片路徑,標題,以及輸出路徑
            #自動滾動,並截圖儲存
            pic_path,title = save_url(driver, item, dir)
            #開始合併我們剛剛截的所有圖
package_picture(pic_path, os.path.abspath(dir), title) except Exception as e : print(e)

save_url方法內部主要步驟如下
* 首先利用xpath找到微信公眾號標題,”//div//h2[@class=’rich_media_title’]”
* 然後將標題設定為檔名
* 再然後自動滾動螢幕
* 儲存每一次滾動螢幕的圖片

package_picture方法內部主要步驟如下
* 將剛剛儲存的分散的圖片打包成為整體
* 存入./result資料夾內

長圖轉為pdf

獲取到長圖了之後,那麼接下來的工作就是轉換為pdf了
執行以下命令

python crop.py

這個命令的目的是將剛剛我們的所有圖片做成一個個單獨的pdf,再次要感謝網友“TTyb”,
以下內容參考了他的部落格

寫在結尾

消失了幾個月的博主,今天好像回來了,嗯。。。感慨頗多。
希望以後不止分享逆向的東西,把博主的所見所聞一起分享給大家。
好玩的有趣的,各種各樣的。
是不是有的小夥伴是不是不願意這樣呢,還是沒有呢。
看心情,看緣分啦。

佛系的博主

寫完部落格轉眼已經第二天啦。

2018.7.17

關於我