小红书评论采集工具,小红书自动采集软件,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)
相关文章
|
8月前
|
监控
抖音快手小红书评论区用户ID采集工具,监控提取评论区UID评论内容,按键精灵插件最牛版
这是一款营销数据监控与采集工具源码,能够实时监控博主营销作品下的用户互动信息,第一时间提取潜在客户的购买意向评论
|
6月前
|
JSON 搜索推荐 API
小红书笔记列表API数据解析(附代码)
本内容介绍如何利用小红书开放平台的笔记列表API,批量获取与关键词或用户相关的笔记数据,包括标题、封面图、互动数据等。接口支持按关键词分页查询及排序筛选,适用于内容聚合与用户分析。附Python示例代码,演示通过GET请求调用API的方法,并处理返回的JSON数据。
|
7月前
|
算法 数据安全/隐私保护 计算机视觉
人脸识别图片眨眼生成器,一键生成眨眼照片,照片眨眼生成器免费
要使用此代码,您需要先下载dlib的68点人脸关键点模型文件(shape_predictor_68_face_landmarks.dat)
|
7月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
7月前
|
数据安全/隐私保护 计算机视觉 Python
一键生成眨眼照片app,一键生成眨眼照片,秒解人脸识别软件
这段代码使用了dlib的人脸检测和关键点定位功能来识别眼睛区域,然后通过图像处理技术模拟眨眼效果
|
7月前
|
机器学习/深度学习 安全 API
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
2428 0
通过UID非法获取手机号的违法行为与技术逻辑剖析别异想天开了-优雅草卓伊凡
|
7月前
|
存储 数据库 数据安全/隐私保护
抖音ck提取工具,快手小红书微博哔哩哔哩cookie提取登录软件,python框架
这个框架提供了完整的Cookie提取功能,支持抖音、快手、小红书、微博和哔哩哔哩平台。主要特点包括
|
7月前
|
数据采集 文字识别 供应链
易语言接单平台,易语言接单,易语言软件脚本工具定制
中小企业痛点:2025年仍有43%小微企业存在ERP/CRM定制需求但预算有限(数据来源:中国中小企业协会)
|
7月前
|
网络协议 Android开发 数据安全/隐私保护
三色过人脸虚拟摄像头,安卓免root虚拟摄像头, 安卓虚拟摄像头过人脸
这个实现包含三个主要部分:虚拟摄像头核心服务、安卓环境配置脚本和客户端测试程序
|
10月前
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
1847 3