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()
Python 获取微信公众号的图片内容
最新推荐文章于 2024-04-07 08:03:41 发布