这个需要有微信公众号,个人订阅号也是可以的

微信公众号地址:https://mp.weixin.qq.com/

首先,抓取的是公众号的内容,我也就找了一个直接分享图片的公众号:每日60s简报(dailybriefing60s),也是很稳定的每天都会在0点左右就会推送当天简报

先登陆你的公众号,因为我们要获取一些你的cookie以及token

登陆后F12查看请求

红框除就是cookie以及token,只需要粘贴在python文件里面对应的位置就行

import os
import requests
import json
from bs4 import BeautifulSoup

Cookie = 'cookie'  # 你的cookie
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
 "Cookie": Cookie,
 "User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
  }

ID = '每日60s简报'  #公众号的名字
token = 'token'     #你的token
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(ID,token)

doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']

data = {
  "token": token,
  "lang": "zh_CN",
  "f": "json",
  "ajax": "1",
  "action": "list_ex",
  "begin": 0,
  "count": "5",
  "query": "",
  "fakeid": fakeid,
  "type": "9",
  }
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test) # 获取到公众号最新的10篇文章
page = json_test["app_msg_list"]
page = page[0]['link']  # 分析json ,他的文章链接再link里面
html = requests.get(page)
text_obj = BeautifulSoup(html.text,'lxml')
imgurl = text_obj.find('div',class_='share_media').find('img').get('src')  # 分析文章的源代码,知道文章的内容图片是在 <div id="img_list" class="share_media">的img标签下
r = requests.get(imgurl)
path = os.path.split(os.path.realpath(__file__))[0]  # 获取当前文件的路径
with open(path+'/'+'news.jpg','wb') as f:  
    f.write(r.content)  # 将文件保存在当前路径并命名为news.jpg

源文件下载地址:http://pan.03c3.cn/public/blog

不是很懂python,代码写得烂,还请见谅

PS:目前cookie和token有访问限制频率,应该是达到多少次之后会被封禁,目前还不知道第二天会不会解除

Last modification:June 6th, 2021 at 02:58 pm
如果觉得我的文章对你有用,请随意赞赏