小红书去水印解析实现思路

实现方法

1、id提取

  • www.xiaohongshu.com 浏览器直接复制过来的
  • xhslink.com 分享的短链地址

首先拿到文章的id,直接复制过来的从链接中提取,短链接从 header 头中提取,或者重定向提取

这个id后面提取json中还会用到

拼接小红书视频/图集地址:https://www.xiaohongshu.com/discovery/item/{小红书id}

2、请求地址

请求这个地址,header 中包含 cookie 和 Accept ,这两个请求参数登录小红书网页版直接获取。

请求中的内容包含 json 格式文本,正则提取 json 格式文本,json 文本位于 window.INITIAL_STATE= 后

正则表达式如下:/window.__INITIAL_STATE__.+redmojiMap\"\:{}}}}/ ,php示例如下:

preg_match('/window\.__INITIAL_STATE__.+redmojiMap\"\:\{\}\}\}\}/',$html,$arr);
$arr = str_replace('window.__INITIAL_STATE__=' , "", $arr[0]);
$json = json_decode(str_replace('undefined' ,'null', $arr),true);

3、获取图集地址

图集地址位于json文件中下面路径,id为第一步获取到的id,默认解析到的为无水印的地址,通过for循环存进数组。

$json['note']['noteDetailMap'][$id]['note']['imageList']

注意:请求头中 Accept 中需包含 image/webp; 参数,没有这个参数请求的图片包含水印,建议直接复制小红书网页中的 Accept 。

#示例代码
$images_num=count($json['note']['noteDetailMap'][$id]['note']['imageList']);
    for($i = 0; $i < $images_num; $i++){
        $ch[$i] = $json['note']['noteDetailMap'][$id]['note']['imageList'][$i]['infoList'][1]['url'];
    }

4、获取视频地址

通过拼接 originVideoKey 参数得到无水印的地址

originVideoKey 参数位于:$json['note']['noteDetailMap'][$id]['note']['video']['consumer']['originVideoKey']

拼接方法:’https://sns-video-bd.xhscdn.com/’ . {originVideoKey}

#示例代码
 $arr = array(
            'code' => 200,
            'msg' => '解析成功',
            'data' => [
                'author' => $json['note']['noteDetailMap'][$id]['note']['user']['nickname'],
                'uid' => $json['note']['noteDetailMap'][$id]['note']['user']['userId'],
                'avatar'=>$json['note']['noteDetailMap'][$id]['note']['user']['avatar'],
                'cover' => $ch[0],
                'like' => $json['note']['noteDetailMap'][$id]['note']['interactInfo']['likedCount'],
                'title' =>  $json['note']['noteDetailMap'][$id]['note']['desc'],
                'url' => 'https://sns-video-bd.xhscdn.com/' . $json['note']['noteDetailMap'][$id]['note']['video']['consumer']['originVideoKey'],
                ]
            );

完整代码


    © 版权声明
    THE END
    支持博主,更新加速
    点赞9赞赏 分享
    勋章统计

    评论一下 共1条

    请登录后发表评论

      请登录后查看评论内容