loading...

精華 (PHP)小紅書無水印視頻/圖集解析實現思路

本帖最后由 編輯 于1 年前編輯 只看Ta 樓主

直接貼代碼:

class Video {
    public function redbook($url) {
        $ip= $this->get_randip();
        $array = parse_url($url);
        switch ($array['host']) {
            case 'www.xiaohongshu.com':
                $id = str_replace('/explore/' , "", $array['path']);
                $loc = 'https://www.xiaohongshu.com/discovery/item/'."$id";
                break;
            case 'xhslink.com':
                $loc=get_headers($url,true)['Location'][0];
                //print_r($loc);
                $array = parse_url($loc);
                $id = str_replace('/discovery/item/' , "", $array['path']);
                break;
            default:
                exit(json_encode(['code'=>-1, 'msg'=>"視頻鏈接不正確"], 480));
                break;
        }
        $header =array(
              'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
              'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
              'Referer: https://www.xiaohongshu.com/',
              'Cookie: abRequestId=9b9a13ea-1720-51e9-a6de-331abacaa69e; webBuild=4.9.0; a1=18eb6b4d5afmq46r71nf5oo7195et621myj77skjs50000382501; webId=3c8dab9561d74f401b898f922ccbc720; gid=yYdDKD4fSy6iyYdDKD4f2vMT0i6A4KFWyIi2VVMllWyj2W28d9KJyW888qYJ28y8DJ00dYYj; unread={%22ub%22:%2266037cba000000000d00f96c%22%2C%22ue%22:%2265f38c00000000000d00cbc9%22%2C%22uc%22:29}; xsecappid=xhs-pc-web; websectiga=7750c37de43b7be9de8ed9ff8ea0e576519e8cd2157322eb972ecb429a7735d4; sec_poison_id=abc0abe9-c5e3-4933-a48b-33aeacb1b480; web_session=0400698d0903920b8e59620d27344be55719de',
              'Connection: keep-alive',
              'CLIENT-IP:'.$ip,
              'X-FORWARDED-FOR:'.$ip
           );
        $html = $this->curl_general($loc,$header);
        //正則 window.__INITIAL_STATE__=
        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);
        //print_r($json);
        $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'];
        }
        if(empty($json['note']['noteDetailMap'][$id]['note']['video'])){
            $arr = array(
                'code' => 300,
                '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']['title'],
                    'images_num' => $images_num,
                    "images" => $ch
                    ]
                );
        }else{
            $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'],
                    ]
                );
        }
        return $arr;
    }
    private function get_randip() {
        $ip_long = array(
            array('607649792', '608174079'), //36.56.0.0-36.63.255.255
            array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
            array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
            array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
            array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
            array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
            array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
            array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
            array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
            array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
        );
        $rand_key = mt_rand(0, 9);
        $ip = long2ip(mt_rand(
            $ip_long[$rand_key][0],
            $ip_long[$rand_key][1]
            ));
        return $ip;
    }
    private function curl_general($url, $header) {
        $ch = curl_init() ;
        curl_setopt_array($ch, array(
           CURLOPT_URL => $url,
           CURLOPT_RETURNTRANSFER => true,
           CURLOPT_ENCODING => '',
           CURLOPT_BINARYTRANSFER=>true,
           CURLOPT_MAXREDIRS => 100,
           CURLOPT_TIMEOUT => 0,
           CURLOPT_FOLLOWLOCATION => true,
           CURLOPT_SSL_VERIFYHOST=>false,
           CURLOPT_SSL_VERIFYPEER => false,
           CURLOPT_HTTPHEADER => $header
        ));
        //$meta = curl_getinfo($ch);//print_r($meta);
        $output = curl_exec($ch);//print_r($output);
        curl_close ($ch);
        return $output;
    }
}

二、實現方法
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']

拼接方法:'

#示例代碼
 $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'],
                ]
            );
發帖
請先 登錄 再評論

? 2025挨踢網 - 大家的導航! - iT200.COM 粵ICP備15047905號-9

亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

    
    

    9000px;">

      
      

      亚洲国产高清aⅴ视频| 亚洲天堂2014| 日韩视频免费直播| 91亚洲大成网污www| 国产成人综合网站| 中文字幕一区二区视频| 久久99国产精品麻豆| 国产精品一区二区91| 国产成a人亚洲| 色婷婷综合中文久久一本| 欧美区在线观看| 国产精品亚洲专一区二区三区| 毛片不卡一区二区| 亚洲人成网站精品片在线观看| 欧美一级精品大片| 国产喷白浆一区二区三区| 色综合天天综合给合国产| 国产成人自拍高清视频在线免费播放| ㊣最新国产の精品bt伙计久久| www.欧美日韩| 午夜婷婷国产麻豆精品| 欧美成人vr18sexvr| thepron国产精品| 日韩av电影天堂| 国产日韩视频一区二区三区| 成人欧美一区二区三区小说 | 国产精一品亚洲二区在线视频| 欧美国产综合色视频| 欧美精品在线一区二区三区| 国产精品99久久久久久宅男| 国产午夜精品福利| 日韩欧美亚洲国产精品字幕久久久| 国产视频一区在线播放| 久久99精品国产91久久来源| 91网站在线观看视频| 日韩精品一区二区三区在线播放| 一区二区在线免费| 理论片日本一区| 日本不卡高清视频| 国产欧美精品区一区二区三区 | 国内外成人在线视频| 国产精品嫩草久久久久| 日韩欧美一级特黄在线播放| 99久久er热在这里只有精品15| 天天综合天天综合色| 亚洲无人区一区| 日韩一区中文字幕| 国产亚洲成av人在线观看导航| 成人美女在线视频| 日韩电影免费在线看| 亚洲另类在线制服丝袜| 欧美日韩美少妇| 免费成人在线观看视频| 椎名由奈av一区二区三区| 国内成人自拍视频| 国产欧美日韩精品a在线观看| 午夜精品一区二区三区免费视频 | 国产精品99久久不卡二区| 亚洲一区在线观看免费观看电影高清| 国产精品久久久久影院色老大 | 国产精品毛片a∨一区二区三区| 日韩成人av影视| 成人欧美一区二区三区1314| 久久久久久免费| 成人av高清在线| 亚洲成人精品影院| 亚洲免费av观看| 亚洲丰满少妇videoshd| 中文字幕一区二区三区蜜月| 国产精品乱码久久久久久| 中文字幕二三区不卡| 国产精品欧美极品| 一区二区三区日韩欧美| 亚洲一区二区av电影| 亚洲最新在线观看| 日韩成人伦理电影在线观看| 蜜桃久久av一区| 精品一区二区在线视频| www.日韩精品| 欧美中文一区二区三区| 91精品在线免费| 国产精品欧美久久久久无广告| 亚洲国产高清aⅴ视频| 亚洲最新视频在线观看| 国内成+人亚洲+欧美+综合在线| 国产风韵犹存在线视精品| 99精品欧美一区二区蜜桃免费| 欧美中文字幕一区二区三区亚洲| 国产在线国偷精品免费看| 色哟哟在线观看一区二区三区| 亚洲一区二区四区蜜桃| 国产最新精品免费| 99久久99久久综合| 在线免费观看视频一区| 国产日本欧洲亚洲| 亚洲一区二区三区四区五区中文| 日本女人一区二区三区| 粉嫩在线一区二区三区视频| 欧美丰满高潮xxxx喷水动漫| 中文字幕不卡的av| 青青草国产成人99久久| 在线观看亚洲一区| 国产欧美日韩综合精品一区二区| 五月天网站亚洲| 97久久人人超碰| 26uuu色噜噜精品一区| 日韩中文字幕一区二区三区| 成人av午夜影院| 欧美极品美女视频| 日韩成人免费在线| 欧美日韩亚洲综合在线| 亚洲日本青草视频在线怡红院 | 久久久久久久网| 一区二区三区电影在线播| 丰满少妇在线播放bd日韩电影| 欧美一区二区三区视频| 国产精品久久久久久久久久免费看| 美女看a上一区| 欧美色图12p| 亚洲综合成人网| 色综合久久88色综合天天6| 日本一二三不卡| 国产激情91久久精品导航| 久久精品一区二区三区四区| 日本欧美久久久久免费播放网| 欧美午夜精品久久久久久超碰| 国产精品短视频| av日韩在线网站| 亚洲精品第一国产综合野| 不卡欧美aaaaa| 综合分类小说区另类春色亚洲小说欧美| 麻豆视频一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美精品日韩一区| 亚洲图片欧美视频| 日韩视频一区在线观看| 亚洲成人免费看| 91精品国产欧美一区二区成人| 亚洲国产精品久久久男人的天堂| 日本电影欧美片| 日本美女一区二区三区视频| 欧美久久久久久久久中文字幕| 水野朝阳av一区二区三区| 日韩一区二区在线观看视频播放| 另类人妖一区二区av| 国产无遮挡一区二区三区毛片日本| 国产91精品欧美| 亚洲超碰精品一区二区| 欧美一级午夜免费电影| 国产成人精品aa毛片| 国产精品美女久久久久av爽李琼| 91在线视频在线| 日本在线不卡一区| 久久久不卡网国产精品二区| 一本到高清视频免费精品| 亚洲国产综合在线| 久久午夜免费电影| 在线区一区二视频| 麻豆久久久久久| **网站欧美大片在线观看| 99re这里都是精品| 激情深爱一区二区| 一区二区三区四区亚洲| 2017欧美狠狠色| 欧美亚洲综合在线| 国产乱人伦精品一区二区在线观看| 亚洲精品你懂的| 精品卡一卡二卡三卡四在线| 在线观看欧美精品| 国产精品资源在线观看| 亚洲与欧洲av电影| 欧美一区二区三区爱爱| 国产成人精品三级| 美女网站在线免费欧美精品| 最新不卡av在线| 日本一二三四高清不卡| 欧美日韩aaa| 在线国产电影不卡| 国产成人av电影在线观看| 天堂影院一区二区| 一区二区三区国产| 中文字幕一区二区三区在线不卡| 精品日产卡一卡二卡麻豆| 欧美网站大全在线观看| 蜜桃精品视频在线观看| 亚洲激情成人在线| 国产欧美日本一区二区三区| 精品国产一区二区三区不卡| 欧洲精品中文字幕| eeuss鲁片一区二区三区| 国产精品综合av一区二区国产馆| 视频一区免费在线观看| 亚洲高清免费在线| 椎名由奈av一区二区三区| 国产精品美女久久久久av爽李琼| 日韩一区二区三| 欧美精品第1页| 日韩一级片网址| 日韩一区二区免费在线电影 | 热久久免费视频|