Python---微信公众号或网页自动导出

背景

从来没有这么粉过一位公众号作者,嗯。。。确切的说是女朋友那天和我说喜欢看一位公众号的作者,然后觉得微信的机制很不好,每次都要翻啊翻,想想有个办法能导出就好了。网上确实有人在做这件事,不过是收费的,具体是谁博主就不点名啦。额。。。我好想能做出来,话不多说,我先试为敬。

所以呢本文主要就是来说说,如何把自己喜欢的网页导出成为pdf,自己喜欢的公众号导出成pdf,让自己随时想看随时看,不受微信的约束,不受各个网站流量的约束。

展示效果

auto_scroll_small

auto_crop

项目地址

github地址

思路

其实微信这个平台流量巨大,微信想怎么限制怎么限制,比如最近封杀抖音,还有和支付宝的战争。所以其实微信对于反爬,等一些功能做了比较好的限制。
正面突破也是可以,如何攻破微信的一项一项障碍,最终直接爬取。
本文的总体思路如下:
利用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

关于我

个人网站:MartinHan的小站

博客:hanhan12312的专栏

知乎:MartinHan01

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,191评论 4 61
  • 今天,天气不好,外面下着小雨,我和爷爷打着伞唱着歌去上学的。 在上语文课的时候,我们都在语文书上写字,戴老师从我身...
    荆玉淋阅读 1,261评论 0 1
  • 泜河河畔花开的极美,又多又广的花海,是秋日里最后的美景。父亲爱花,我想带他去看。就盼着这个星期天。 周六晚上接到总...
    名字不好拟阅读 962评论 0 1
  • 写在之前: 2018年9月13日晚,大萌参加了Sherrie获得Toastmaster 2018世界演讲亚军后回天...
    大萌在路上阅读 4,258评论 0 0
  • 真是惭愧,第一次挑战“日更”由于自身的懒惰在坚持了3天后却断了下篇而不了了之,如今再入“日更”,除了挑战所谓的“文...
    似水流年1982阅读 1,137评论 0 0