小红书爬取实战指南

小红书爬取实战指南

一、小红书爬取特点与难点

小红书(Xiaohongshu)作为流行的社交电商平台,具有以下特点:

  • 内容以图文/短视频为主
  • 强用户互动属性(点赞、收藏、评论)
  • 严格的反爬机制(包括但不限于):
    • 请求头验证
    • 行为指纹检测
    • 频繁弹验证码
    • 账号封禁策略

二、合法合规前提

重要提示

  1. 严格遵守小红书用户协议
  2. 不爬取用户隐私数据
  3. 控制请求频率(建议≤1请求/3秒)
  4. 仅用于学习研究目的

三、实战爬取方案

3.1 方案一:Web端模拟(需登录)

import requests
from bs4 import BeautifulSoup
import time
import random

# 登录后的cookie(需手动获取)
cookies = {
   
    'xhsTrackerId': 'your_tracker_id',
    'xhsTrackerId.sig': 'your_sig',
    'a1': 'your_a1_cookie'
}

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'Referer': 'https://www.xiaohongshu.com/'
}

def get_note_detail(note_id):
    url = f'https://www.xiaohongshu.com/explore/{
     note_id}'
    try:
        response = requests.get(url, headers=headers, cookies=cookies, timeout=10)
        if response.status_code == 200:
            soup = BeautifulSoup(response.text, 'html.parser')
            
            # 解析页面数据
            title = soup.find('h1', class_='title').text if soup.find('h1', class_='title') else '无标题'
            author = soup.find('a', class_='nickname').text if soup.find('a', class_='nickname') else '匿名'
            
            print(f'标题: {
     title}')
            print(f'作者: {
     author}')
            
        elif response.status_code == 403:
            print('触发反爬,需要验证码或更换cookie')
    except Exception as e:
        print(f'请求失败: {
     str(e)}')
    
    time.sleep(random.uniform(2, 5

你可能感兴趣的:(python)