这个需要有微信公众号,个人订阅号也是可以的
微信公众号地址: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')
script= text_obj.find_all('script')[24]
cdn_url = re.findall(r'cdn_url:\s*\'(.*?)\'',script.text,re.S)[0]
print(cdn_url)
PS:目前cookie和token有访问限制频率,应该是达到多少次之后会被封禁,目前还不知道第二天会不会解除
5 条评论
大佬,你这代码需要使用正则,少导入一个import re。尝试了一下,发现beautifulsoup获取不了信息。
这个每天都是7点多才发。不是凌晨啊
转发自己公众号吗?
不错,支持!