搜狗陌陌反爬虫机制剖析及应对方式

优采云 发布时间: 2020-08-10 04:50

  最近项目中,由于须要从微信公众号中获取一些文章内容,所以用到了搜狗陌陌。一旦搜索的次数稍为多一点,就会触发搜狗陌陌的反爬虫机制,最初是须要加上User-Agent恳求头,后来是要求输入验证码,现在输入验证码以后,竟然时常都会报502,导致爬虫极不稳定。搜狗陌陌的反爬虫机制仍然在更新,特别是近来的一次更新,更使人一时半会儿摸不着脑子,也是耗费了好一会儿时间进行了突破。

  下面是对探求过程的记录。

  首先参考了以下博客:

  博主的探求过程,建议在他的博客中直接进行查看,这里我关注的是他说的关于Cookie的部份。

  博主觉得恳求时,SUID、SUV和SNUID最为重要,我在谷歌浏览器中看见以下Cookie

  

  除了两个SUID和SUV这三个Cookie,我对Cookie进行了挨个剔除,并重新进行查询,发现其他Cookie都是可以手动生成的。而且不会报502,也不会触发验证码页面。

  由于Java中使用Connection.headers(Map cookies)方法,会导致第一个SUID被第二个覆盖掉(虽然我当时确实添加了两个SUID),请求也是正常的,所以,我进一步提不仅第一个SUID,发现刷新页面,也没有问题。

  

  红框之外的Cookie就会手动生成,也没有触发验证码。只有当我剔除SUV时,才会触发验证码机制,从而使输入验证码:

  

  所以,目前为止,需要带上的Cookie只有SUV!

  那么,SUV这个Cookie怎么获取呢?

  一般来说,通过恳求搜狗陌陌网站,然后获取到Cookie,作为自己的Cookie使用,但是无疑会降低恳求。当时朋友有个大胆的看法,说试试能不能直接传一个32位字符串呢?也真是脑洞大开!这里很自然地就想到了UUID,然后将UUID形成的32位字符串转小写。

  想着搜狗陌陌不至于做的如此傻吧?但还是试了试,没想到还真的通过了,而且恳求还比较稳定。

  综上,处理办法是——在恳求搜狗陌陌时,生成一个名为SUV的Cookie,请求时加上即可。

  UUID的生成方式网上有很多,这里不再赘言,注意除去字符串中的短横线!

  祝你们好运!

  参考博客:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线