当前位置: 首页 > news >正文

小红书关键词爬虫

标题

  • 1 统计要收集的关键词,制作一个文件夹
  • 2 爬取每一页的内容
  • 3 爬取标题和内容
  • 4 如果内容可以被查看,爬取评论内容
  • 5 将结果进行汇总,并且每个帖子保存为一个json文件,具体内容
  • 6 总结

1 统计要收集的关键词,制作一个文件夹

例如,我要收集旅游相关的,就收集:
旅游、旅行、旅游攻略,这些词,做成一个txt文件。

用一个浏览器登录上小红书账号,然后记录写cookies,例如:
在这里插入图片描述

2 爬取每一页的内容

主要使用request,js模块,将爬取的内容保存为res,里面包含一页20条数据。

info = re.sub(r'"page":".*?"', f'"page":"{page}"', info)ret = js.call('get_xs', api, info, cookies["a1"])headers['x-s'], headers['x-t'] = ret['X-s'], str(ret['X-t'])response = requests.post(search_url, headers=headers, cookies=cookies, data=info.encode('utf-8'))res = response.json()

3 爬取标题和内容

从每一个note里面解析出标题,内容等信息。

result = {}result["title"] = data['note_card']['title']result["desc"] = data['note_card']['desc'].replace("\n", "").replace("\t", "")tags_temp = data['note_card']['tag_list']tags = []for tag in tags_temp:try:tags.append(tag['name'])except:passresult["tags"] = tagsresult["time"] = timestamp_to_str(data['note_card']['time'])

4 如果内容可以被查看,爬取评论内容

每个帖子里面的评论的单独的url,需要根据id号进行拼接,所以根据第3节获取的user-id,进行拼接,然后再用get进行访问,最后获得每条评论,注意有些帖子是不能被查看的,所以需要进行判断。

note_id = url.split('/')[-1]comments_url = "https://edith.xiaohongshu.com/api/sns/web/v2/comment/page?note_id={}&image_scenes=FD_WM_WEBP,CRD_WM_WEBP".format(note_id)response = requests.get(comments_url, headers=headers, cookies=cookies)res = response.json()comments = []for line in res["data"]["comments"]:comment_str = line["content"]comments.append(comment_str)

5 将结果进行汇总,并且每个帖子保存为一个json文件,具体内容

包含:标题,具体内容,标题,创建时间,评论内容。每个关键词一个文件夹。
在这里插入图片描述

6 总结

详细代码私聊,注意本内容没有爬取图片,如果需要可以添加。

http://www.lryc.cn/news/308863.html

相关文章:

  • 网络爬虫的危害,如何有效的防止非法利用
  • 2024/2/29 备战蓝桥杯 6-1 二分
  • 浅析ARMv8体系结构:原子操作
  • 综合练习(二)
  • sql-labs第46关(order by盲注脚本)
  • 13款可以轻松上手画图软件推荐
  • vue实现商品评分效果(通过插件实现)
  • SpringBoot 手写 Starter
  • C++ 学习笔记(Structured bindings)
  • K8S常用kubectl命令汇总(持续更新中)
  • 加密和签名的区别及应用场景
  • 双非二本找实习前的准备day3
  • 又挖到宝了!国人团队研发的AI视频工具PixVerse,这么好用居然还完全免费!(强烈推荐)
  • 勒索病毒普通用户防范建议
  • Zabbix“专家坐诊”第231期问答
  • 【.NET Core】深入理解IO - FileSteam流
  • CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码
  • 深度学习 精选笔记(8)梯度消失和梯度爆炸
  • linux操作docker
  • k8s Pod 进阶(资源限制,健康检查探针详解,启动退出,pod生命周期,)
  • SpringBoot整合ActiveMQ步骤
  • MySQL的单表和多表查询
  • 攻防世界例题wp
  • 仿牛客网项目---显示评论和添加评论功能的实现
  • idea集成git详解教程(实用篇)
  • 搭建LNMP环境并配置个人博客系统
  • 为什么网络安全缺口这么大,还是这么缺网络安全工程师?
  • 创新洞察|诺奖获得者埃德蒙·费尔普斯谈未来:中国创新从何而来?
  • SpringMVC 学习(六)之视图
  • ROS 2基础概念#1:计算图(Compute Graph)| ROS 2学习笔记