小紅書帖子評論的nodejs爬蟲腳本

從小紅書上爬取評論,但是目前還不能完全爬取子評論,使用GPT沒能解決這個問題。

后續博主可能會改進。或者如果你懂的話,可以在博主代碼基礎上改進。

需要安裝nodejs軟件,部署環境變量。博主是在pycharm中運行的。

代碼無套路獲取。自行修改參數(中文在代碼里標記了)即可。

var http = require('http');
var https = require('https');
var _ = require('lodash');
const XLSX = require('xlsx');  // 引入 xlsx 庫
const path = require('path');// API 請求配置
const options = {hostname: 'edith.xiaohongshu.com',port: 443,path: '/api/sns/web/v2/comment/page?note_id=你要爬取的筆記id&cursor=&top_comment_id=&image_formats=jpg,webp,avif',method: 'GET',headers: {'Cookie': '你的cookie'}
};https.get(options, (resp) => {let data = '';resp.on("data", (chunk) => {data += chunk;});resp.on('end', () => {console.log('Response Data:', data);  // Print the raw responsetry {const jsonResponse = JSON.parse(data);// Check if the response contains the expected data structureif (jsonResponse.data && jsonResponse.data.comments) {const records = [];let commentIdCounter = 1; // Initialize a counter for parent comment IDs// Process parent commentsjsonResponse.data.comments.forEach(item => {const parentComment = {comment_id: commentIdCounter++,  // Assign unique ID for parent commentsnickname: item.user_info && item.user_info.nickname ? item.user_info.nickname : 'No Nickname',content: item.content || '',url: item.pictures?.[0]?.url || '', // First image URLparent_comment_id: 'Parent Comment', // Mark parent comments as 'Parent Comment'};records.push(parentComment);// Process sub-comments and add indentation to show hierarchyif (item.sub_comments && item.sub_comments.length > 0) {item.sub_comments.forEach(subItem => {const subComment = {comment_id: commentIdCounter++,  // Assign unique ID for sub-commentsnickname: subItem.user_info && subItem.user_info.nickname ? subItem.user_info.nickname : 'No Nickname',content: '    ' + (subItem.content || ''), // Indent to show it's a sub-commenturl: subItem.pictures?.[0]?.url || '', // First image URLparent_comment_id: parentComment.comment_id // Link sub-comment to parent comment};records.push(subComment);});}});// Sort records by the original order (comment_id) or creation timerecords.sort((a, b) => a.comment_id - b.comment_id);// Create a new workbook and add a sheetconst wb = XLSX.utils.book_new();const ws = XLSX.utils.json_to_sheet(records);// Add the sheet to the workbookXLSX.utils.book_append_sheet(wb, ws, 'Comments');// Save the workbook as an XLSX fileconst filePath = path.join(__dirname, 'comments_with_parent_child_hierarchy.xlsx');XLSX.writeFile(wb, filePath);console.log('The XLSX file was written successfully at:', filePath);} else {console.error('No comments data found or data structure is incorrect');}} catch (error) {console.error('Error parsing response data:', error);}});}).on('error', (err) => {console.error('Request failed:', err);
});

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93320.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【iOS】多線程原理

目錄 前言 基本概念及原理 線程、進程與隊列 線程的定義: 進程的定義: 線程與進程之間的聯系與區別: 線程和runloop的關系 影響任務執行速度的因素 多線程 多線程生命周期 線程池的原理 iOS中多線程的實現方式 線程安全問題 互斥…

藥房發藥的“時間密碼”:同步時鐘用藥安全?

在醫院的藥房里,每一粒藥片的流轉都暗藏“時間密碼”。從藥品入庫到患者服藥,時間記錄的精確性直接關乎生命安全。一旦時間數據出現偏差,輕則導致用藥爭議,重則引發醫療事故。近年來,隨著醫療數字化進程加速&#xff0…

UI-TARS-Desktop 深度解析:下一代智能自動化桌面平臺

目錄 1. 產品概述 2. 核心功能與技術架構 2.1 關鍵技術 2.2 功能亮點 3. 競品對比分析 4. 部署與成本分析 4.1 部署方案 4.2 隱性成本 5. 商業化前景 5.1 目標市場 5.2 盈利模式 5.3 風險挑戰 6. 未來演進方向 7. 總結 1. 產品概述 UI-TARS-Desktop 是一款基于A…

STM32L051同時處理Alarm A和Alarm B中斷

同時處理Alarm A和Alarm B中斷 當同時啟用Alarm A和Alarm B時,需要在中斷處理程序中準確判斷是哪個鬧鐘觸發了中斷。以下是完整的解決方案: 中斷判斷與處理流程 1. 在RTC中斷服務程序中判斷中斷源 // stm32l0xx_it.c void RTC_IRQHandler(void) {/* USER…

OpenCV---morphologyEx形態學操作

在計算機視覺與圖像處理領域,形態學操作是一種基于圖像形狀的非線性處理方法,廣泛應用于噪聲去除、邊緣檢測、目標分割等任務。OpenCV提供的morphologyEx函數是形態學操作的“瑞士軍刀”,它整合了多種高級形態學運算,能夠實現開運…

RuoYi-Cloud 接入 Sentinel 的 3 種限流方式

場景: 服務:ruoyi-robot(對外接口統一在 /external/gs/**) 網關:ruoyi-gateway(轉發到 ruoyi-robot) 注冊/配置:Nacos 流控:Sentinel 1.8.x 控制臺 Dashboard&#x…

快速搭建python HTTP Server測試環境

這里用python http.server搭建一個api測試環境,自定義請求處理程序,以模擬不同api相應。 1 服務代碼 /api/data,端口8000,GET 返回json數據為"{"message": "This is a sample API response"}" 代…

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案

Docker容器定時任務時區Bug導致業務異常的環境變量配置解決方案 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都是…

解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程

文章目錄解鎖Dify與MySQL的深度融合:MCP魔法開啟數據新旅程引言:技術融合的奇妙開篇認識主角:Dify、MCP 與 MySQL(一)Dify:大語言模型應用開發利器(二)MCP:連接的橋梁&am…

雜記 02

1 WSL安裝 WSL的安裝遇到了問題,睡醒起來發現電腦藍屏了,linux系統沒裝好,但是好像大部分開發環境都是linux下需要的,先這樣用一下吧,到時候再說。可以問下前輩開發細節,主要是網絡代理問題,保…

劇本殺小程序系統開發:重構推理娛樂生態

在娛樂產業蓬勃發展的今天,推理娛樂作為一種充滿智慧和挑戰的娛樂形式,受到了越來越多人的喜愛。劇本殺,作為推理娛樂的代表之一,正以其獨特的魅力吸引著大量玩家。而劇本殺小程序系統開發,則為推理娛樂生態的重構帶來…

力扣習題:基本計算器

本片內容我們將針對于一個力扣中的一道很經典的習題:基本計算器。 這道題目十分經典,在很多大廠的面試題中都有出現過 因此我們將進一步來學習 該題目代碼已經上傳作者的個人gitee:CPP 學習代碼庫: C代碼庫新庫,舊有C倉庫滿員了喜…

Element用法---Loading 加載

僅供參考 文章目錄一、加載動畫二、Loading 組件1、指令調用 Loading2、服務調用 Loading一、加載動畫 當我們打開某個頁面時,如果需要加載的數據很多或者網絡很差,頁面加載就會非常緩慢,中間可能會很長時間顯示空白,那么就需要加…

飛算AI 3.2.0實戰評測:10分鐘搭建企業級RBAC權限系統

飛算AI 3.2.0實戰評測:10分鐘搭建企業級RBAC權限系統 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都…

事務的四大特性

事務(Transaction)是數據庫管理系統(DBMS)中用于保證數據操作正確性和一致性的核心機制。事務的特性通常用 ACID 四個字母概括,分別代表 原子性(Atomicity)、一致性(Consistency&…

WIN11系統下Open3D 0.19.0支持GPU的python版本

前往Open 3D官網下載https://github.com/isl-org/Open3D下載對應版本的源碼。 根據官方手冊利用cmake進行編譯&安裝,其中需要修改一些代碼適應于win 11系統,編譯時間較長需要耐心等待。最后,安裝結果如下圖,搞了四天&#xff…

ICCV 2025 | 4相機干掉480機位?CMU MonoFusion高斯潑濺重構4D人體!

???? 近日,卡內基梅隆大學(Carnegie Mellon University)的研究團隊在動態場景重建領域取得重要進展。其發表于ICCV 2025的論文《MonoFusion: Sparse-View 4D Reconstruction via Monocular Fusion》提出創新方法MonoFusion 。該方法突破常…

ADB 無線調試連接(Windows + WSL 環境)

gradle wrapper --gradle-version 8.4 Windows WSL 成功連接 Android 設備(用于 ./gradlew installDebug)的完整過程總結:? ADB 無線調試連接過程(Windows WSL 環境) 📌 目標:從 WSL 中通過 …

【.net core】【wetercloud】處理前端項目免登陸,且從前端項目跳轉至系統內時的問題

1.前端項目訪問后臺內容時免登陸(一般用于后臺接口需要校驗登陸時)處理思路:將后臺用戶的登陸校驗令牌信息在用戶登錄后添加至前端項目訪問地址的參數列表中,如:https://yourdomain/Home/Index#/https://yourdomain/vi…

設備 AI 知識庫,管理效率新飛躍

在設備管理領域,高效解決設備故障、合理規劃維護工作對企業生產運營至關重要。易點易動設備管理系統新推出的設備 AI 知識庫,為提升管理效率帶來了新契機。設備 AI 知識庫集成先進的人工智能技術,是設備管理領域的創新應用。易點易動設備管理…