0°

Python抓取公众号文章并生成pdf文件保存到本地

内容预览:

    原文始发于微信公众号(Python绿色通道):Python抓取公众号文章并生成pdf文件保存到本地

    前面一篇文章用Python抓取某大V的公众号文章由于做的时间比较仓促还留下了几个问题:

    1. 分页的时候出现了数据重复,

    2. 什么时候爬取完了数据,根本不知道

    3. 那些文章是原创,那些文章非原创还没有标记

    4. 把公众号文章转存到本地. 方便以后阅读.

    公众号文章转存到本地的效果图

    Python抓取公众号文章并生成pdf文件保存到本地

    Python抓取公众号文章并生成pdf文件保存到本地


    友情提示: 所有的抓包操作,请用自己的微信小号来操作,我不知道官方会不会有封号操作,反正小心使得成年船!

    分页的时候数据出现了重复

    Python抓取公众号文章并生成pdf文件保存到本地

    Python抓取公众号文章并生成pdf文件保存到本地

    我发现这里返回的数据有一个next_offset这个字段,看意思就是想下一页的数据偏移量,于是我把数据每次取出来之后,重新赋值,发现数据果然没有再次重复了.

    Python抓取公众号文章并生成pdf文件保存到本地

      self.offset = all_datas['next_offset']  # 下一页的偏移量
     self.request_data()

    什么时候爬取完了数据,根本不知道

    我在Charles中不断抓取数据,发现在抓取到尾页的时候,发现 can_msg_continue 状态变为0了,于是有了这一行代码

    Python抓取公众号文章并生成pdf文件保存到本地

       if 0 == all_datas['ret'] and 1 == all_datas['can_msg_continue']:

    那些文章是原创,那些文章非原创还没有标记

    很多时候我比较喜欢原创文章,也深深尊重这些原创工作者,他们的文章都花费了大量心血,公众号正好有原创标记,所以我猜应该有原创字段标识, 我通过Charles抓包分析,  发现 copyright_stat 这个字段与版权意思比较接近,然后再进一步分析,发现这个状态等于11的时候,是为原创

     copyright = data['app_msg_ext_info']['copyright_stat']
    copyright = '原创文章_' if copyright == 11 else '非原创文章_'

    完整的抓取数据代码就是这些:

        def parse_data(self, response_data):

           all_datas = json.loads(response_data)

           if 0 == all_datas['ret'] and 1 == all_datas['can_msg_continue']:
               summy_datas = all_datas['general_msg_list']
               datas = json.loads(summy_datas)['list']
               for data in datas:
                   try:
                       title = data['app_msg_ext_info']['title']
                       title_child = data['app_msg_ext_info']['digest']
                       article_url = data['app_msg_ext_info']['content_url']
                       cover = data['app_msg_ext_info']['cover']
                       copyright = data['app_msg_ext_info']['copyright_stat']
                       copyright = '原创文章_' if copyright == 11 else '非原创文章_'
                       self.count = self.count + 1
                       print('第【{}】篇文章'.format(self.count), copyright, title, title_child, article_url, cover)
                       self.creat_pdf_file(article_url, '{}_{}'.format(copyright, title))
                   except:
                       continue

               time.sleep(3)
               self.offset = all_datas['next_offset']  # 下一页的偏移量
               self.request_data()
           else:
               if 0 == all_datas['can_msg_continue']:
                   exit('数据抓取完毕!')
               else:
                   exit('数据抓取出错:' + all_datas['errmsg'])

    把公众号文章转存到本地. 方便以后阅读.

    仅仅把文章抓取到完全不能满足我的兴趣,我想把有价值的公众号文章放到本地自己来查看一下,于是我就有了我把文章转成pdf 文档的想法,怎么把文章转成pdf文档呢,

    分下面三步操作:

    • 电脑上安装  wkhtmltopdf

      wkhtmltopdf 下载地址:https://wkhtmltopdf.org/downloads.html, 我的电脑是win10,64位,所以我下载了 下载版本 Windows (MinGW) 0.12.4 32-bit / 64-bit for Windows XP/2003 or later; standalone.

    Python抓取公众号文章并生成pdf文件保存到本地


    • 在Pycharm的setting中安装 pdfkitwkhtmltopdf 这两个库.


      Python抓取公众号文章并生成pdf文件保存到本地


    • 生成pdf文件.

       self.config = pdfkit.configuration(wkhtmltopdf='C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe') # 这里需要配置一下wkhtmlpdf.exe路径

       def creat_pdf_file(self, url, title):
           try:
               file = 'D:/store/file/{}.pdf'.format(title)
               if not os.path.exists(file): # 过滤掉重复文件
                   pdfkit.from_url(url, file, configuration=self.config)

           except Exception as e:
               print(e)

    效果图如下:

    Python抓取公众号文章并生成pdf文件保存到本地

    Python抓取公众号文章并生成pdf文件保存到本地

    缺点还是有的,网页中的图片无法写入在pdf文件中,另外这个pdfkit用法还有很多,这里我就不深入了,有兴趣的朋友可以自行深入!

    文章源码完整代码,由于篇幅有限,请后台回复 公众号抓取文章源码

    下一篇,我们去抓取公众号里面的文中 阅读量,点赞量,这对于判断一篇文章是否优质有重要参考意义,另外还要抓取评论,生成词云,我们看一篇热文有那些观点,请持续关注!

    推荐阅读

    一起来做Python项目实战吧!

    用Python抓取某大V的公众号文章

    用Python抓取某大V的公众号文章

    高级爬虫(一):Scrapy爬虫框架的安装

    高级爬虫( 二):Scrapy爬虫框架初探

    高级爬虫(三):使用Scrapy爬取拉勾网数据并写入数据库


    的Python之旅

    Python抓取公众号文章并生成pdf文件保存到本地

    长按,识别二维码,关注公众号



    目前50000+人已关注加入我们

    Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地

    Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地 Python抓取公众号文章并生成pdf文件保存到本地


    公众号回复:Flask ,爬虫,数据分析,可获得电子书


    和大佬一起学习网络安全知识

    以上就是:Python抓取公众号文章并生成pdf文件保存到本地 的全部内容

    本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢^^
    Email:[email protected]


    0 条回复 A 作者 M 管理员
      所有的伟大,都源于一个勇敢的开始!
    欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论