爬取微信公众号图片并生成Word和PDF文档

在这个数字化时代,从网络上获取并整理信息变得尤为重要。今天,我将与大家分享一个Python脚本,该脚本能够从微信公众号文章中爬取图片,并将这些图片整理成Word和PDF文档。这个脚本特别适用于需要将微信公众号内容转化为正式文档的场景,比如教育、研究或工作汇报。

一、项目背景

微信公众号因其丰富的图文内容,成为许多领域信息传播的重要平台。然而,有时候我们需要将这些内容整理成更为正式的文档格式,如Word或PDF,以便存档、分享或打印。手动操作既耗时又容易出错,因此,自动化工具显得尤为重要。

二、所需工具与库

  • requests:用于发送HTTP请求。
  • BeautifulSoup:用于解析HTML和XML文档。
  • python-docx:用于创建和修改Word文档。
  • docx2pdf:用于将Word文档转换为PDF。
  • PyPDF2:用于操作PDF文件,如合并、拆分、旋转和删除页面等。

三、代码解析

  1. 导入必要的库

    import requests
    from bs4 import BeautifulSoup
    import datetime
    import os
    from docx import Document
    from docx.shared import Cm
    from docx2pdf import convert
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
  2. 获取当前文件夹下所有图片张数

    file_name函数通过遍历指定目录及其子目录,获取所有图片的路径,并按文件名排序。

    def file_name(file_dir):
     #   print(root) # 当前目录路径
     #   print(dirs) # 当前路径下所有子目录
     #   print(files) # 当前路径下所有非目录子文件
     path_list = []
     for root, dirs, files in os.walk(file_dir):
         for i in range(len(files)):
             path = root + '\\' + files[i]
             path_list.append(path)
     # 按名称数字大小排序
     path_list.sort(key=lambda x: int(x.split("\\")[-1].split(".")[0]))
     return path_list
    
  3. 获取微信公众号图片
    get_picture函数通过发送HTTP请求获取微信公众号文章的HTML内容,并使用BeautifulSoup解析。它提取所有图片标签,并尝试下载图片到本地文件夹。

def get_picture(url):
    global path
    headers = {
   
        'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
    }
    # 获取系统时间
    curr_time = datetime.datetime.now()
    # 将时间格式化为字符生成时间戳到时候给文件夹命名用
    path = datetime.datetime.strftime(curr_time, '%Y%m%d%H%M')

    # 检查是否存在这个文件夹
    if os.path.exists(path):
        print("属于这个时间点的文件夹已经创建好")
    else:
        # 不存在则创建
        os.mkdir(path)
        print("创建成功!!!!正在保存图片")
    # 获取当前工作目录并加上之前的时间生成文件夹路径
    dirname = os.getcwd() + '\\' + path + '\\'
    # 向刚才输入的公众号链接里面发送请求
    req = requests.get(url=url, headers=headers).content.decode()
    # 用BeautifulSoup解析网页
    soup = BeautifulSoup(req, 'lxml')
    res = soup.select('img')                # 获取该网页中所有的图片标签
    a = 0
    # 遍历所有的图片标签
    for i in res:
        if i.get("data-src") == None:           # 如果这个标签内的data-src等于空的时候直接跳过
            pass
        else: 
Python可以用于爬取微信公众号的文章。有几种方式可以实现这一目标,其中一种方式是通过登录微信公众号平台,在里面搜索要爬取的公众号,然后进行抓包。另外一种方式是使用安卓模拟器进行抓包。还可以使用搜狗的微信模块来获取数据。 在使用第一种方式时,首先需要拥有一个微信公众号的账号。然后,通过工具如pycharmfiddler等,登录微信公众号平台,进入创作管理,选择图文素材,然后创建或编辑文章。最后,通过添加引用查找公众号文章等步骤,进行数据的爬取收集。 在实现这些步骤之前,你需要了解微信公众号平台的主要功能界面布局。主面板可以划分为七大块,每个块都有不同的功能。在后续的操作中,你可以使用Python代码来模拟微信请求,实现数据的爬取分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [欢度国庆⭐️共享爬虫之美⭐️基于 Python 实现微信公众号爬虫Python无所不能爬)](https://blog.csdn.net/xiejiachao/article/details/120573509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【爬虫python爬取微信公众号](https://blog.csdn.net/qq_36269293/article/details/109244944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值