爬取微信公众号cookie获取与token获取

爬取逻辑

  1. 使用selenium自动化工具,获取微信公众号平台的cookies以及加密token
  2. 把cookie与token用在requests函数中模拟浏览器访问微信公众号服务中的素材管理
  3. 在素材管理中搜索,公众号名称与文章,获取文章地址与保存

使用selenium获取token

1、需要扫码登录,获取token,与 登录状态的cookie,使用get_cookies()方法或页面cookies
2、通过xpath匹配出一个url,re匹配出token
3、

下面是代码的实现

#遵循PEP8规则
import time
import json
import re

from selenium import webdriver
from lxml import html



# 获取cookies和token
class C_ookie:
    # 初始化
    def __init__(self):
        self.html = ''

    # 获取cookie
    def get_cookie(self):
        url = 'https://mp.weixin.qq.com'
        Browner = webdriver.Chrome()
        Browner.get(url)
        # 获取账号输入框
        ID = Browner.find_element_by_name('account')
        # 获取密码输入框
        PW = Browner.find_element_by_name('password')
        # 输入账号
        id = ''
        pw = ''
        # id = input('请输入账号:')
        # pw = input('请输入密码:')
        ID.send_keys(id)
        PW.send_keys(pw)
        # 获取登录button,点击登录
        Browner.find_element_by_class_name('btn_login').click()
        # 等待扫二维码
        time.sleep(10)
        ck = Browner.get_cookies()
        ck1 = json.dumps(ck)
        with open('ck.txt','w') as f :
            f.write(ck1)
            f.close()
        self.html = Browner.page_source

	# 获取token,在页面中提取
    def Token(self):
        etree = html.etree
        h = etree.HTML(self.html)
        url = h.xpath('//a[@title="首页"]/@href')[0]
        print(url)
        token = re.findall('\d+',url)
        print(token)
        with open('token.txt', 'w') as f:
            f.write(token)
            f.close()


C = C_ookie()
C.get_cookie()
C.Token()

最主要的秘钥已经解决了,剩下的就是模范浏览器访问后端的,期间不要过猛,否则容易被发现,被腾讯封个几小时

接下来准备爬取微信公众号里面的资源url了,可以先自己爬取一下,下一篇博客咱们一起来获取

你可能感兴趣的:(爬虫)