一.思路
我们通过网页版的微信公众平台的图文消息中的超链接获取到我们需要的接口
从接口中我们可以得到对应的微信公众号和对应的所有微信公众号文章。
二.接口分析
获取微信公众号的接口:
https://mp.weixin.qq.com/cgi-bin/searchbiz"text-align: center">
获取对应公众号的文章的接口:
https://mp.weixin.qq.com/cgi-bin/appmsg"text-align: center">
三.实现
第一步:
首先我们需要通过selenium模拟登录,然后获取到cookie和对应的token
def weChat_login(user, password): post = {} browser = webdriver.Chrome() browser.get('https://mp.weixin.qq.com/') sleep(3) browser.delete_all_cookies() sleep(2) # 点击切换到账号密码输入 browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click() sleep(2) # 模拟用户点击 input_user = browser.find_element_by_xpath("//input[@name='account']") input_user.send_keys(user) input_password = browser.find_element_by_xpath("//input[@name='password']") input_password.send_keys(password) sleep(2) # 点击登录 browser.find_element_by_xpath("//a[@class='btn_login']").click() sleep(2) # 微信登录验证 print('请扫描二维码') sleep(20) # 刷新当前网页 browser.get('https://mp.weixin.qq.com/') sleep(5) # 获取当前网页链接 url = browser.current_url # 获取当前cookie cookies = browser.get_cookies() for item in cookies: post[item['name']] = item['value'] # 转换为字符串 cookie_str = json.dumps(post) # 存储到本地 with open('cookie.txt', 'w+', encoding='utf-8') as f: f.write(cookie_str) print('cookie保存到本地成功') # 对当前网页链接进行切片,获取到token paramList = url.strip().split('"htmlcode">url = 'https://mp.weixin.qq.com' headers = { 'HOST': 'mp.weixin.qq.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63' } with open('cookie.txt', 'r', encoding='utf-8') as f: cookie = f.read() cookies = json.loads(cookie) resp = requests.get(url=url, headers=headers, cookies=cookies) search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz"htmlcode">lists = search_resp.json().get('list')[0]通过上面的代码即可获取到对应的公众号数据
fakeid = lists.get('fakeid')通过上面的代码就可以得到对应的fakeid
2.请求获取微信公众号文章接口,取到我们需要的文章数据
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg"color: #ff0000">四.总结通过对微信公众号文章的爬取,需要掌握selenium和requests的用法,以及如何获取到请求接口。但是需要注意的是当我们循环获取文章时,一定要设置延迟时间,不然账号很容易被封禁,从而得不到返回的数据。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。