小红书评论采集工具,小红书自动采集软件,Uid作品笔记用户提取

简介: 这个工具包含三个主要功能:1) 获取用户基本信息 2) 获取用户发布的笔记 3) 获取笔记下的评论

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1158

这个工具包含三个主要功能:1) 获取用户基本信息 2) 获取用户发布的笔记 3) 获取笔记下的评论。代码实现了完整的爬虫逻辑,包括请求处理、数据解析和结果保存。使用时需要替换示例中的user_ids为实际要采集的小红书用户ID。

import requests
import json
import time
import random
import csv
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from urllib.parse import urlencode

class XiaohongshuSpider:
def init(self):
self.ua = UserAgent()
self.session = requests.Session()
self.base_url = "https://www.xiaohongshu.com"
self.headers = {
'Accept': 'application/json, text/plain, /',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Origin': self.base_url,
'Referer': f'{self.base_url}/',
'User-Agent': self.ua.random
}
self.proxies = None # 可自行配置代理

def get_user_info(self, user_id):
    """获取用户基本信息"""
    url = f"{self.base_url}/user/profile/{user_id}"
    try:
        response = self.session.get(url, headers=self.headers, proxies=self.proxies)
        if response.status_code == 200:
            soup = BeautifulSoup(response.text, 'html.parser')
            script = soup.find('script', {'type': 'application/ld+json'})
            if script:
                user_data = json.loads(script.string)
                return {
                    'user_id': user_id,
                    'nickname': user_data.get('name', ''),
                    'description': user_data.get('description', ''),
                    'fans_count': user_data.get('interactionStatistic', {}).get('userInteractionCount', 0),
                    'follows_count': 0,  # 需要从其他接口获取
                    'notes_count': 0     # 需要从其他接口获取
                }
    except Exception as e:
        print(f"获取用户信息失败: {e}")
    return None

def get_user_notes(self, user_id, limit=20):
    """获取用户发布的笔记"""
    url = f"{self.base_url}/fe_api/burdens/weblog/profile/{user_id}/notes"
    params = {
        'page': 1,
        'pageSize': limit,
        'sortBy': 'time'
    }
    notes = []
    try:
        response = self.session.get(url, params=params, headers=self.headers, proxies=self.proxies)
        if response.status_code == 200:
            data = response.json()
            if data.get('success'):
                for note in data.get('data', {}).get('notes', []):
                    notes.append({
                        'note_id': note.get('id'),
                        'title': note.get('title'),
                        'desc': note.get('desc'),
                        'likes': note.get('likes'),
                        'collects': note.get('collects'),
                        'comments': note.get('comments'),
                        'time': note.get('time'),
                        'cover_url': note.get('cover', {}).get('url')
                    })
    except Exception as e:
        print(f"获取用户笔记失败: {e}")
    return notes

def get_note_comments(self, note_id, limit=50):
    """获取笔记评论"""
    url = f"{self.base_url}/fe_api/burdens/weblog/notes/{note_id}/comments"
    params = {
        'page': 1,
        'pageSize': limit
    }
    comments = []
    try:
        response = self.session.get(url, params=params, headers=self.headers, proxies=self.proxies)
        if response.status_code == 200:
            data = response.json()
            if data.get('success'):
                for comment in data.get('data', {}).get('comments', []):
                    comments.append({
                        'comment_id': comment.get('id'),
                        'user_id': comment.get('user', {}).get('id'),
                        'nickname': comment.get('user', {}).get('nickname'),
                        'content': comment.get('content'),
                        'likes': comment.get('likes'),
                        'time': comment.get('time'),
                        'reply_count': comment.get('replyCount')
                    })
    except Exception as e:
        print(f"获取笔记评论失败: {e}")
    return comments

def save_to_csv(self, data, filename):
    """保存数据到CSV文件"""
    if not data:
        return
    keys = data[0].keys()
    with open(filename, 'w', newline='', encoding='utf-8-sig') as f:
        writer = csv.DictWriter(f, fieldnames=keys)
        writer.writeheader()
        writer.writerows(data)

def run(self, user_ids):
    """主运行方法"""
    all_users = []
    all_notes = []
    all_comments = []

    for user_id in user_ids:
        # 获取用户信息
        user_info = self.get_user_info(user_id)
        if user_info:
            all_users.append(user_info)
            print(f"成功获取用户信息: {user_info['nickname']}")

            # 获取用户笔记
            notes = self.get_user_notes(user_id)
            if notes:
                all_notes.extend(notes)
                print(f"获取到{len(notes)}条笔记")

                # 获取每条笔记的评论
                for note in notes:
                    comments = self.get_note_comments(note['note_id'])
                    if comments:
                        all_comments.extend(comments)
                        print(f"获取到笔记{note['note_id']}的{len(comments)}条评论")

            # 随机延迟,避免被封
            time.sleep(random.uniform(1, 3))

    # 保存数据
    if all_users:
        self.save_to_csv(all_users, 'users_info.csv')
    if all_notes:
        self.save_to_csv(all_notes, 'users_notes.csv')
    if all_comments:
        self.save_to_csv(all_comments, 'notes_comments.csv')

    print("数据采集完成!")

if name == 'main':
spider = XiaohongshuSpider()

# 示例用户ID列表
user_ids = ['5f0a1234567890abcdef', '5f0b9876543210fedcba']
spider.run(user_ids)
相关文章
抖音快手小红书评论区用户ID采集工具,监控提取评论区UID评论内容,按键精灵插件最牛版
这是一款营销数据监控与采集工具源码,能够实时监控博主营销作品下的用户互动信息,第一时间提取潜在客户的购买意向评论
|
7月前
|
运维 关系型数据库 MySQL
零基础保姆级教程:OpenClaw阿里云及Windows本地部署 Skill 实现7×24小时MySQL数据库智能管控
作为2026年最热门的开源AI助手,OpenClaw(原Clawdbot)凭借极强的兼容性与扩展能力,正在重新定义开发者与数据库的交互方式。它兼容macOS、Windows、Linux等主流系统,支持接入常用聊天工具,更能通过Skill扩展实现多样化需求。而当OpenClaw与火山引擎云数据库MySQL版结合,更是让“自然语言管理数据库”成为现实——无需记忆复杂SQL指令,只需用日常语言即可完成数据查询、性能监控、故障排查,甚至7×24小时AI智能管控,大幅提升数据库运维效率。
2035 8
|
10月前
|
JSON 监控 API
小红书API接口的应用场景介绍
小红书API基于RESTful架构,支持HTTP协议与JSON格式,采用OAuth 2.0认证,实现内容数据获取、自动化发布、用户认证集成及实时舆情监控。开发者可借助API进行热度分析、KOL识别、跨平台登录与品牌告警,提升运营效率与决策能力。(238字)
1813 1
|
JSON 搜索推荐 API
小红书笔记列表API数据解析(附代码)
本内容介绍如何利用小红书开放平台的笔记列表API,批量获取与关键词或用户相关的笔记数据,包括标题、封面图、互动数据等。接口支持按关键词分页查询及排序筛选,适用于内容聚合与用户分析。附Python示例代码,演示通过GET请求调用API的方法,并处理返回的JSON数据。
1138 4
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
机器学习/深度学习 安全 API
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
3544 0
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
|
存储 数据库 数据安全/隐私保护
抖音ck提取工具,快手小红书微博哔哩哔哩cookie提取登录软件,python框架
这个框架提供了完整的Cookie提取功能,支持抖音、快手、小红书、微博和哔哩哔哩平台。主要特点包括
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
2704 3
|
存储 数据采集 API
小红书笔记详情API深度解析与实战指南(2025年最新版)
本文深入解析小红书开放平台笔记详情API的进阶使用与合规策略,涵盖接口升级、数据维度扩展、调用优化等内容,并提供Python调用示例及数据清洗存储方案。结合电商导购、舆情监控等实战场景,助力开发者高效获取并应用内容资产,同时强调数据隐私与平台政策合规要点,帮助构建稳定、安全的数据应用体系。