xhs_web系列二

不出意外,我应该是打算写一下xhs_web抓取的一系列文章,初步确定下规模三篇左右
第一篇:note_list & note_detail 抓取
第二篇:xhs_cookie 获取
第三篇:解决xhs风控
难度由易到难,循序渐进
下面进去第二篇,这篇稍微有点意思,主要是简单的js逆向以及浏览器指纹技术
既然是获取cookie,那就先说下什么是cookie,cookie是指网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上(通常经过加密)的数据。也就是说这个cookie是服务端下发给客户端,并在客户端存储的。
那我们第一步就应该让客户端再次下发一个cookie给我们,怎么做呢,第一种等到这个cookie过期,第二种在本地删除cookie,我也没测过这cookie的有效期,有兴趣的同学可以试试哈,如何在本地删除cookie,且看下图操作



我们把这些cookie一个个删掉,再次刷新浏览器,可以看到cookie又出现了,说明服务器已经成功下发了cookie
那我们进入Network中一一检查请求,如果同学们自己实践后就会知道,仅靠控制台无法确认cookie哪里生成的,因为有太多的No resource with given identigier found导致我们无法检查response,但是可以确定一个范围



那么我们借助抓包工具charles再次检查下,重复上面的删除cookie、刷新浏览器操作,在charles中检查我们发现该请求返回了timestamp2的值

我们用代码模拟下该请求
# -*- coding:utf-8 -*-

import json
import requests


response = requests.post(
    url='https://www.xiaohongshu.com/fe_api/burdock/v2/shield/registerCanvas?p=cc',
    data=json.dumps(
        {
            'id': '3796bf17a50042cbdf142f0a7a2cfe1b',
            'sign': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36~~~false~~~zh-CN~~~30~~~8~~~12~~~-480~~~Asia/Shanghai~~~1~~~1~~~1~~~1~~~unknown~~~MacIntel~~~PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf,Chrome PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf,Chromium PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf,Microsoft Edge PDF Viewer::Portable Document Format::application/pdf~pdf,text/pdf~pdf,WebKit built-in PDF::Portable Document Format::application/pdf~pdf,text/pdf~pdf~~~canvas winding:yes~canvas fp:dc49d6cdb71a1738b46bc14272830ab3~~~false~~~false~~~false~~~false~~~false~~~0;false;false~~~2;3;6;7;8~~~124.04347657808103'
        }
    ),
    headers={
        'content-type': 'application/json'
    }
)
print(response.json()['data']['canvas'])

可以看到我们获取到了timestamp2的值,这里可能会有同学要问这个id和sign是怎么生成的,
首先sign是很多浏览器的信息,id是sign + hasaki之后再做md5 hash,其实这两个参数是固定的,response中的canvas会每天更新。
本来是打算带大家把这个分析一遍,但篇幅好像有点太长了,放到下一篇去写吧
结尾依然是老一套

  1. 代码仅实现了获取timestamp2的值,需要你将这一部分拼接到系列一文章中代码使用
  2. 下一篇会讲一些浏览器指纹的知识,大家可以先了解一下这个项目,浏览器指纹
  3. 本文仅供学习参考, 请勿用作非法用途
  4. 如若涉及侵权, 416828817@qq.com/18355094977@163.com, 收到必删除!!!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容