共重好详解

423 阅读2分钟

现在比较普遍的公众号爬虫有三种是,一种是通过搜狗引擎采集但是公众号列表页只显示最近群发的数据,数据量比较少。其他的需要通过文章名称来检索,但是话说有文章名称了就不用爬了。第二种方式是通过微信拦截来获取公众号数据但是封号率比较高,爬相对量的数据会消耗挺大的账号成本。第三种方式是通过微信公众平台登录订阅号,在发布文章种的页面找到别人的公众号接口,实现公众号自由。今天就手把手教学这一方法 本文仅提供技术学习请勿用于违法事件,构成犯罪与本博主无关,如有侵权请联系删除

image.png

首先需要自行注册微信订阅号账号,一个微信只能注册一个。注册方法不再讲自行查阅

  1. 先通过微信扫一下登入网站,登录后是这个样子的网站地址

image.png 然后点击草稿箱步入

image.png 在进入图文模板(在不同版本间入口可能不同,总之找到图文模板就对了)

image.png 继续步入新建新建图文模板

image.png 注意到这里可不是要写文章,点击超链接

image.png 弹出弹框后点击选择其他公众号

image.png 输入公众号检索后选择要看公众号就能看到数据列表了,然后就是抓包写代码采集了。

  1. 贴一下代码
headers = {
    'authority': 'mp.weixin.qq.com',
    'accept': '*/*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cache-control': 'no-cache',
    # 'cookie': '自己的cookies',
    'pragma': 'no-cache',
    'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsgtemplate?action=edit&lang=zh_CN&token=1685420175',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
    'x-requested-with': 'XMLHttpRequest',
}

for page in range(0,23):
    begin = page * 5
    print(f'采集到了第={page} 页')
    url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
    params = {
        "action": "list_ex",
        "begin": f"{begin}",
        "count": "5",
        "fakeid": "MzU0MTA3NDk0Mw==",#文章id
        "type": "9",
        "query": "",
        "token": "1685420175",#这里是一个时间戳
        "lang": "zh_CN",
        "f": "json",
        "ajax": "1"
    }
    response = requests.get(url, headers=headers, cookies=cookies, params=params).json()['app_msg_list']
    time.sleep(random.randint(0, 5) * 1.35)
    for res in response:
        res['source'] = '精准**'
        mdb.insert_one(res)

3. 这个cookies是长效的,不是经常过期,可以多搞一个账号搭一个cookies池监控几百的公众号没问题。

image.png