前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搜狗微信爬虫案例

搜狗微信爬虫案例

作者头像
李玺
发布2022-03-09 08:58:21
1.2K0
发布2022-03-09 08:58:21
举报
文章被收录于专栏:爬虫逆向案例

案例地址:https://weixin.sogou.com/weixin?

搜狗微信目前还是可以检索文章,具有一定的采集价值。

接口分析

先分析接口,普通的GET请求。

经过测试,发现主要对cookies中的两个参数进行校验,SNUID 和 SUV 。

SNUID 和 SUV 都是由服务端返回,在初次访问时即可获取。

一般情况下,频繁访问后会出现图文验证码,当完成验证之后,会返回一个新的ID,该ID即是SNUID。

而服务端对 SUV 的来源并没有过多校验,只要是真实的参数即可。

当大家可以生成 SNUID 和 SUV 时,就能畅通无阻的进行采集。

参数生成

SUV 相对简单,请求某些接口即可获取。

代码语言:javascript
复制
 SUV = dict_from_cookiejar(requests.get('https://pb.sogou.com/cl.gif?').cookies)['SUV']

SNUID 需要完成验证码校验。

验证码页面地址:https://www.sogou.com/antispider/?

验证接口:

关于本部分的具体实施,是先请求该页面,提取出验证码图片,在本地识别后通过验证接口提交,进行校验。

校验成功返回:{‘code’: 0, ‘msg’: ‘解封成功,正在为您跳转来源地址…’, ‘id’: ‘0ED9B76D171DC1A6E862079C1877D6B8’}

验证失败返回: {‘code’: 3, ‘msg’: ‘验证码输入错误, 请重新输入!’}

校验成功返回的id即是SNUID。

本部分代码过多,就不贴了。

链接转换

需要注意的是列表页中的链接并不是跳转后的链接,需要我们进行特殊处理。

我们请求列表页后,会返回一段script代码,可以发现该代码进行window.location的跳转工作。

那么把这段代码提取出来,通过execjs在本地执行,即可返回新的URL地址。

代码语言:javascript
复制
import execjs,re
html = ''
js='function s() {'+''.join(re.findall('\{.*?url.replace\("@", ""\);',html,re.S))+'return url}}'
new_url = execjs.compile(js).call('s')
print(new_url)

拿到weixin的链接后,即可进行采集。

备注

本案例难度并不高,需要大家仔细分析接口。

最终可以让采集程序在异常时获取新的cookies,达到一直运行的效果。

原文地址:https://blog.csdn.net/weixin_43582101/article/details/123359110

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接口分析
  • 参数生成
  • 链接转换
  • 备注
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档