自动采集小红书过去24小时个小时内发布且排名前100的图文/视频笔记,输出表格保存笔记的作者,URL链接,阅读量 点赞量 评论量
时间: 2024-04-01 15:31:14 浏览: 9
好的,以下是一个可行的实现方案:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
}
# 发送搜索请求,获取前100个笔记的URL链接
url = 'https://www.xiaohongshu.com/discovery/item/1633566916198?keyword=%E7%BE%8E%E5%A6%86%E5%8C%96%E5%A6%86&mode=word&sort=time'
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
notes = soup.find_all('div', {'class': 'note-item'})
urls = []
for note in notes[:100]:
urls.append(note.find('a')['href'])
# 遍历每个URL链接,获取笔记的作者、阅读量、点赞量和评论量
results = []
for url in urls:
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
author = soup.find('div', {'class': 'user-name'}).text
read_count = soup.find('div', {'class': 'read-count'}).text.replace('阅读', '').strip()
like_count = soup.find('div', {'class': 'like-count'}).text.replace('赞', '').strip()
comment_count = soup.find('div', {'class': 'comment-count'}).text.replace('评', '').strip()
results.append([author, url, read_count, like_count, comment_count])
# 将结果保存为CSV文件
df = pd.DataFrame(results, columns=['作者', 'URL链接', '阅读量', '点赞量', '评论量'])
df.to_csv('notes.csv', index=False)
```
这段代码会首先发送搜索请求,获取前100个笔记的URL链接,然后遍历每个URL链接,获取笔记的作者、阅读量、点赞量和评论量,并将结果保存为CSV文件。需要注意的是,由于小红书的反爬虫机制比较严格,因此需要设置请求头来模拟浏览器访问。