小红书评论采集工具,小红书自动采集软件,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)
相关文章
|
3月前
|
网络协议 Android开发 数据安全/隐私保护
三色过人脸虚拟摄像头,安卓免root虚拟摄像头, 安卓虚拟摄像头过人脸
这个实现包含三个主要部分:虚拟摄像头核心服务、安卓环境配置脚本和客户端测试程序
|
3月前
|
算法 数据安全/隐私保护 计算机视觉
人脸识别图片眨眼生成器,一键生成眨眼照片,照片眨眼生成器免费
要使用此代码,您需要先下载dlib的68点人脸关键点模型文件(shape_predictor_68_face_landmarks.dat)
|
4月前
|
监控
抖音快手小红书评论区用户ID采集工具,监控提取评论区UID评论内容,按键精灵插件最牛版
这是一款营销数据监控与采集工具源码,能够实时监控博主营销作品下的用户互动信息,第一时间提取潜在客户的购买意向评论
|
3月前
|
JSON 数据安全/隐私保护 数据格式
QQ群好友采集工具,爬取qq群成员, qq群成员采集软件
代码实现了一个完整的QQ群成员采集工具,包含登录验证、群列表获取、成员信息采集等功能
|
3月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
Web App开发 数据安全/隐私保护 Python
万能ck提取登录软件,京东贴吧淘宝拼多多cookie提取工具,python框架分享
这个框架使用了Selenium进行浏览器自动化操作,包含了京东和淘宝的登录示例。代码展示了如
|
3月前
|
数据采集 数据处理 数据安全/隐私保护
小红书爬虫采集工具, 小红书截流获客软件,直播间评论作品提取软件
这个项目包含三个主要模块:爬虫核心、数据处理和代理管理。使用时需要安装requests
|
3月前
|
数据安全/隐私保护 计算机视觉 Python
人脸识别图片眨眼生成器,虚拟相机过人脸软件, 秒解人脸识别软件
这个系统包含三个主要模块:人脸检测与特征点识别、虚拟相机实现和主程序入口。代码使用了dlib库
|
3月前
|
数据安全/隐私保护 计算机视觉 Python
一键生成眨眼照片app,一键生成眨眼照片,秒解人脸识别软件
这段代码使用了dlib的人脸检测和关键点定位功能来识别眼睛区域,然后通过图像处理技术模拟眨眼效果
|
3月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。