用Python爬虫小红书笔记与评论的代码
时间: 2024-12-14 13:17:36 浏览: 23
在Python中,使用Scrapy库编写小红书笔记和评论的爬虫是一个常见的任务,Scrapy是一个强大的网络爬取框架。下面是一个简化的例子,展示了如何开始创建这样一个爬虫:
```python
# 首先,安装必要的库(如果你还没有)
pip install scrapy requests lxml beautifulsoup4
# 创建一个新的Scrapy项目
scrapy startproject xiaohongshu_crawler
# 进入项目目录并生成一个新spider
cd xiaohongshu_crawler
scrapy genspider example xiaohongshu.com
# 编辑`xiaohongshu/spiders/example.py`,添加如下内容:
```python
import scrapy
from bs4 import BeautifulSoup
class NotesSpider(scrapy.Spider):
name = 'notes'
allowed_domains = ['xiaohongshu.com']
start_urls = ['https://www.xiaohongshu.com/explore'] # 初始抓取页面
def parse(self, response):
soup = BeautifulSoup(response.text, 'lxml') # 解析HTML
notes_list = soup.find_all('div', class_='note-item') # 找到笔记列表
for note in notes_list:
title = note.find('h3', class_='title').text # 提取标题
link = note.find('a')['href'] # 获取链接到详细页的URL
yield {
'title': title,
'link': response.urljoin(link), # 转换为绝对URL
}
# 对每个笔记详情页请求进一步解析
yield scrapy.Request(url=link, callback=self.parse_note)
def parse_note(self, response):
comment_list = response.css('.comment-list .comment-item') # 提取评论列表
for comment in comment_list:
username = comment.css('span::text')[0].get() # 提取用户名
content = comment.css('p::text').get() # 提取评论内容
yield {
'username': username,
'content': content,
'parent_link': response.url # 如果需要,可以获取当前笔记的链接作为父节点
}
```
这只是一个基础示例,实际抓取可能需要处理反爬、登录验证、动态加载内容等复杂情况。同时,小红书有其API,直接使用API会更为便捷,不过请注意遵守平台的使用政策。
阅读全文