前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python开发的小红书笔记搜索采集软件

用python开发的小红书笔记搜索采集软件

原创
作者头像
马哥小迷弟132
修改2024-07-07 08:44:09
2131
修改2024-07-07 08:44:09
举报
文章被收录于专栏:小红书采集软件

项目介绍与实现细节

爬取目标:小红书关键词搜索结果
爬取目标:小红书关键词搜索结果

对于自媒体从业者来说,采集小红书热门对标作品的意义在于帮助用户了解当前流行的内容和趋势,可以帮助用户更好地把握市场需求,同时也可以启发用户创作出更具吸引力和创新性的内容。通过观察热门对标作品,用户可以学习到一些成功的案例和经验,从而提高自己的内容质量和影响力,还可以帮助用户更好地定位自己的目标受众和市场定位,有助于提升自己在小红书等平台上的曝光和影响力。

我开发了一款基于Python的爬虫采集软件,专注于自动化抓取小红书笔记。这款软件的设计初衷是为了让非编程用户也能轻松使用,无需安装Python环境或修改代码,只需双击即可运行。

软件功能展示

  • 用户友好的界面:软件配备了直观的图形界面,方便用户操作。用户只需输入关键词,即可开始采集相关的小红书笔记数据。
  • 灵活的采集设置:用户可以通过界面设置采集条件,如页码、笔记类型、排序方式等,以满足不同的采集需求。
软件运行界面
软件运行界面
  • 丰富的数据展示:采集结果以列表形式展示,包括笔记ID、标题、类型、点赞数、用户ID、用户昵称等信息,并可直接生成CSV文件保存。
展示爬取结果
展示爬取结果

核心代码解析

  1. 爬虫采集模块
    • 定义请求地址和请求头,模拟浏览器发送请求。

请求地址:

代码语言:txt
复制
# 请求地址
url = 'https://edith.xiaohongshu.com/api/sns/web/v1/search/notes'

请求头:

代码语言:txt
复制
# 请求头
h1 = {
	'Accept': 'application/json, text/plain, */*',
	'Accept-Encoding': 'gzip, deflate, br',
	'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
	'Content-Type': 'application/json;charset=UTF-8',
	'Cookie': '换成自己的cookie值',
	'Origin': 'https://www.xiaohongshu.com',
	'Referer': 'https://www.xiaohongshu.com/',
	'Sec-Ch-Ua': '"Microsoft Edge";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
	'Sec-Ch-Ua-Mobile': '?0',
	'Sec-Ch-Ua-Platform': '"macOS"',
	'Sec-Fetch-Dest': 'empty',
	'Sec-Fetch-Mode': 'cors',
	'Sec-Fetch-Site': 'same-site',
	'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0',
}
  • 设置请求参数,如关键词、页码等,以指定采集条件。

请求参数:

代码语言:txt
复制
# 请求参数
post_data = {
	"keyword": search_keyword,
	"page": page,
	"page_size": 20,
	"search_id": v_search_id,
	"sort": v_sort,
	"note_type": v_note_type,
	"image_scenes": "FD_PRV_WEBP,FD_WM_WEBP",
}
代码语言:txt
复制
# 发送请求
r = requests.post(url, headers=h1, data=data_json.encode('utf8'))
print(r.status_code)
# 以json格式接收返回数据
json_data = r.json()

  • 解析返回的数据,提取所需字段,如笔记标题、点赞数等。

代码语言:txt
复制
# 循环解析
for data in json_data['data']['items']:
	# 笔记标题
	try:
		note_title = data['note_card']['display_title']
	except:
		note_title = ''
	print('note_title:', note_title)
	note_title_list.append(note_title)
代码语言:txt
复制
# 把数据保存到Dataframe
df = pd.DataFrame(
	{
		'关键词': search_keyword,
		'页码': page,
		'笔记id': note_id_list,
		'笔记链接': ['https://www.xiaohongshu.com/explore/' + i for i in note_id_list],
		'笔记标题': note_title_list,
		'笔记类型': note_type_list,
		'点赞数': like_count_list,
		'用户id': user_id_list,
		'用户主页链接': ['https://www.xiaohongshu.com/user/profile/' + i for i in user_id_list],
		'用户昵称': user_name_list,
	}
)
if os.path.exists(result_file):
	header = False
else:
	header = True
# 把数据保存到csv文件
df.to_csv(result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')

  1. 软件界面模块
    • 使用Tkinter库创建主窗口,并设置窗口标题和大小。
    • 添加输入控件,如文本框,用于输入搜索关键词。
    • 在窗口底部添加版权信息标签。
  2. 日志模块
    • 实现日志功能,记录软件运行过程中的关键信息。
    • 设置日志格式和级别,并将日志输出到控制台和文件。
    • 使用TimedRotatingFileHandler实现日志文件的定时轮转。

生成的日志文件
生成的日志文件

项目总结与获取更多

本文详细介绍了小红书搜索采集软件的开发背景、核心代码以及软件界面的实现。这款软件为小红书数据的采集提供了便捷的工具,尤其适合需要进行数据分析或市场研究的用户。

想要与原创开发者交流沟通,本文首发公众号【老男孩的平凡之路】。在这里,你将找到更多有趣且实用的软件工具。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档