【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

这篇具有很好参考价值的文章主要介绍了【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一、爬取目标
  • 二、爬虫代码讲解
    • 2.1 分析过程
    • 2.2 爬虫代码
  • 三、演示视频
  • 四、获取完整代码

一、爬取目标

您好!我是@马哥python说,一名10年程序猿。

最近的亚运会大家都看了吗。除了振奋人心,还主打一个爱憎分明(主要针对小日子和韩国),看了的小伙伴都懂得!

我用python爬取了小红书上 #杭州亚运会 这个话题下的所有笔记,目标如下:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

爬取结果如下:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

共7个核心字段,含:

笔记标题, 笔记id, 笔记链接, 作者昵称, 作者id, 作者链接, 发布时间。

二、爬虫代码讲解

2.1 分析过程

核心思路,通过网页端分析接口数据实现。
点击手机客户端右上角分享按钮,然后选择复制链接,如下:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

把复制好的链接粘贴到电脑端浏览器,并打开开发者模式,如下:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

页面往下滚动,刷出更多笔记数据,打开以notes开头的请求链接,查看预览数据:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

由此便得到了前端请求链接,下面开始开发爬虫代码。

2.2 爬虫代码

首先,导入需要用到的库:

import requests  # 发送请求
import random
from time import sleep  # 设置等待,防止反爬
import time
import pandas as pd  # 保存csv
import datetime
import os

定义一个请求头:

# 请求头
h1 = {
	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
}

由于我并不知道一共有多少页,往下翻多少次,所以采用while循环,直到触发终止条件,循环才结束。

那么怎么定义终止条件呢?我注意到,在返回数据里有一个叫做"has_more"的参数,大胆猜测它的含义,是否有更多数据,正常情况它的值是true。如果它的值是false,代表没有更多数据了,即到达最后一页了,也就该终止循环了。

因此,核心代码结构应该是这样(以下是伪代码,主要是表达逻辑,请勿直接copy):

while True:
	# 发送请求
	r = requests.get(url, headers=h1)
	# 解析数据
	json_data = r.json()
	# 逐条解析
	for i in json_data['data']['notes']:
		# 笔记标题
		title = i['title']
		title_list.append(title)
	# 保存数据到csv
	。。。
	# 判断终止条件
	next_cursor = json_data['data']['cursor']
	if not json_data['data']['has_more']:
		print('没有下一页了,终止循环!')
		break
	page += 1

另外,还有一个关键问题,如何进行翻页。
查看请求参数,如下:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

这里的游标,就是向下翻页的依据,因为每次请求的返回数据中,也有一个cursor:
【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例

大胆猜测,返回数据中的cursor,就是给下一页请求用的cursor,所以,这部分的逻辑实现应该如下(以下是伪代码,主要是表达逻辑,请勿直接copy):

while True:
	# 判断是否首页
	if page == 1:
		url = 'https://www.xiaohongshu.com/web_api/sns/v3/page/notes?page_size=6&sort=hot&page_id={}&sid='.format(
			page_id)
	else:
		url = 'https://www.xiaohongshu.com/web_api/sns/v3/page/notes?page_size=6&sort=hot&page_id={}&sid=&cursor={}'.format(
			page_id, next_cursor)
	# 发送请求
	r = requests.get(url, headers=h1)
	# 解析数据
	json_data = r.json()
	# 得到下一页的游标
	next_cursor = json_data['data']['cursor']

最后,是顺理成章的保存csv数据:

# 保存数据到DF
df = pd.DataFrame(
	{
		'页码': page,
		'笔记标题': title_list,
		'笔记id': note_id_list,
		'作者昵称': author_name_list,
		'作者id': author_id_list,
		'发布时间': create_time_list,
	}
)
# 保存到csv
df.to_csv(result_file, mode='a+', header=header, index=False, encoding='utf_8_sig')

至此,爬虫代码开发完毕。

完整代码中,还包含转换时间戳、随机等待时长、解析关键字段、保存Dataframe数据等逻辑实现,详见文末。

三、演示视频

代码演示:【Python爬虫演示】爬取小红书话题笔记,以#杭州亚运会#为例

四、获取完整代码

爱学习的小伙伴,本次分析过程的完整python源码及结果数据,我已打包好,并上传至我的微信公众号"老男孩的平凡之路",后台回复"爬小红书话题"即可获取。点击直达


我是@马哥python说,一名10年程序猿,持续分享python干货中!文章来源地址https://www.toymoban.com/news/detail-711734.html

到了这里,关于【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python杭州二手房源爬虫数据可视化分析大屏全屏系统答辩PPT

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(36)
  • Python爬虫html网址实战笔记

    仅供学习参考

    2024年02月20日
    浏览(24)
  • Python杭州二手房源爬虫数据可视化分析大屏全屏系统设计与实现和开题报告

     博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月04日
    浏览(32)
  • 【xhs爬虫软件】把小红书博主发布笔记API接口user_posted接口封装成GUI采集工具!

    用Python开发的爬虫采集软件,可自动抓取小红书博主的已发布笔记。 小红书的已发布笔记接口URL: 开发者模式分析过程: 进而封装成GUI界面软件,如下: 软件效果: 采集结果: 演示视频: https://www.bilibili.com/video/BV1Zy421z74a 详细讲解文章: 【GUI软件】小红书指定博主批量采

    2024年04月27日
    浏览(35)
  • 使用Python爬取小红书笔记与评论(仅供学习交流)

    【作者主页】: 吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建

    2024年01月16日
    浏览(36)
  • 爬虫笔记(一):实战登录古诗文网站

    需求:登录古诗文网站,账号+密码+图形验证码 第一 :自己注册一个账号+密码哈 第二 :图形验证码,需要一个打码平台(充钱,超能力power!)或者tesseract开源包,这两个用于自动识别图形验证码哈~ 我用的是超级鹰,充了1块,有1000积分,一次10积分,初学者福音hhh

    2024年01月20日
    浏览(29)
  • Python实战,爬虫实战,用Python抢票

    Python是一门高级编程语言,其在大数据、人工智能、科学计算等众多领域都有广泛应用。而在互联网时代,Python更是成为网络爬虫、数据挖掘的主要选择之一 。那么,如何将Python应用于实战中,实现抢票等功能呢?接下来,将介绍Python实战爬虫抢票的全流程。 爬虫 先来谈一

    2024年02月06日
    浏览(57)
  • 《网络爬虫开发实战》学习笔记:1.1 HTTP基本原理

    1.1.1 URI和URL ​ URI ,全称Uniform Resource Identifier,即 统一资源标志符 ; URL ,全称Uniform Resource Locator,即 统一资源定位符 。 ​ 举例来说,https://github.com/favicon.ico既是一个URI,也是一个URL。即有favicon.ico这样一个图标资源,用这样一个URI/URL指定了访问它的唯一方式,其中包括

    2024年02月03日
    浏览(35)
  • python爬虫实战案例——某站视频爬虫

    今天突然发现,某站的视频在电脑上是不能下载的。于是乎,就打算在电脑上爬取一下某站的视频。让大家在电脑上也能看, 某站的视频是音频和视频分开的,我在网上搜了一下,要用到一个叫ffmpeg的音视频合成的库,网上教程很多,大家搜一下就可以找到了,我就不在此赘

    2024年02月10日
    浏览(27)
  • Python爬虫实战案例——音乐爬虫,收费歌曲依旧可用

    因为现在众多音乐平台下载歌曲都要收费了,导致我没有车载音乐听了。于是便自学爬虫做了这个简易的音乐爬虫。不是那些大平台的音乐爬虫,是一个不知名的小音乐网站的爬虫。下面开始正题: 首先,便是找不是那几家大互联网公司的音乐网站,在我的不懈努力之下终于

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包