Python 获取微信公众号的图片内容

import requests
from bs4 import BeautifulSoup


"""
    下载微信公众号中的图片
"""

class WXGetImage():
    def __init__(self, url):
        self.local_url = url
        self.path = self.local_url.split("mp.weixin.qq.com/")[1]
        self.local_accounts_cookies = 'RK=0DTkUXx/bU; ptcz=f27250f46bdc20d17a0e35752014400b22ac13289eebc85701b48d7849ab022f; pgv_pvid=4138532164; pac_uid=0_4749bc42beead; fqm_pvqid=79380be1-1df7-4870-b15f-43520ee50aec'

    def get_headers(self):
        headers = {
            "authority": "mp.weixin.qq.com",
            "method": "GET",
            "path": self.path,
            "scheme": "https",
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
            "cookie": self.local_accounts_cookies,
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
        }
        return headers

    def get_message(self):
        resp = requests.get(self.local_url, headers=self.get_headers())
        # print(resp.text)
        soup = BeautifulSoup(resp.text, "lxml")
        result = soup.findAll("img", soup)
        number = 55
        for i in result:
            number += 1
            try:
                local_url = i["data-src"]
            except Exception as e:
                print("该连接为公用图片,跳过")
                local_url=""
            if "wx_fmt=jpeg" not in local_url:
                continue
            else:
                print(local_url)
                save_pic_with_byte(self.get_image(local_url), number)

    def get_image(self, url):
        resp = requests.get(url)
        return resp.content


def save_pic_with_byte(byte_message, picture_name):
    """
    将二进制转换为图片
    """
    with open('{0}.jpg'.format(picture_name), 'wb') as file:
        file.write(byte_message)

if __name__ == '__main__':
	# 此处输入需要获取图片的链接
    url = "https://mp.weixin.qq.com/s/sl5mDQAEOC_2_X-MRiLL6A"
    WXGetImage(url).get_message()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值