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

上海自主建站模板手机高端网站建设

上海自主建站模板,手机高端网站建设,一个网站通常包含多个网页吗,出口跨境电子商务Python爬取小红书搜索关键词下面的所有笔记的内容、点赞数量、评论数量等数据,绘制词云图、词频分析、数据分析 使用 Python 编写一个简单的爬虫程序来从小红书抓取与指定关键词相关的笔记数据,并对这些数据进行基本的数据分析,包括词云图和…

Python爬取小红书搜索关键词下面的所有笔记的内容、点赞数量、评论数量等数据,绘制词云图、词频分析、数据分析

使用 Python 编写一个简单的爬虫程序来从小红书抓取与指定关键词相关的笔记数据,并对这些数据进行基本的数据分析,包括词云图和柱状图的绘制。

配套视频请看:配套视频教程
完整程序源码地址:完整程序源码地址

本教程分为两大部分:爬虫部分数据分析部分。

  • 爬虫部分:从指定关键词的小红书中获取相关笔记的信息(如标题、链接、用户信息、互动数据等),并保存为 CSV 文件。
  • 数据分析部分:加载生成的 CSV 文件,进行文本清洗、分词,然后生成词云图和柱状图以直观展示数据特征。

必要的第三方库

  • Python
  • Requests:发送 HTTP 请求
  • execjs:执行 JavaScript 代码(用于 js 逆向)
  • json & csv:处理 JSON 数据和 CSV 文件写入
  • pandas: 数据处理
  • jieba: 中文分词
  • matplotlib, wordcloud: 数据可视化

文件结构
在这里插入图片描述

爬虫逻辑详解

小红书对请求有反爬机制,需要通过 Cookie签名来模拟合法请求。

获取 Cookie 设置请求头

  • 打开 小红书官网 并登录。
  • 在浏览器开发者工具中找到并复制请求头中的 cookie 字段。
  • 将获取到的 cookie 替换到代码中的相应位置。
  • 根据需要修改 base_headers 中的 cookie 值。
base_headers = {"accept": "application/json, text/plain, */*","cookie": "your_cookie_here", # 替换为你自己的cookie...
}

使用 JavaScript 生成请求签名

使用 execjs 调用本地的 xhs.js 文件完成签名生成

xhs_sign_obj = execjs.compile(open('xhs.js', encoding='utf-8').read())
sign_header = xhs_sign_obj.call('sign', uri, data, base_headers.get('cookie', ''))

根据关键词搜索笔记,遍历多页数据

def keyword_search(keyword):search_url = "https://edith.xiaohongshu.com/api/sns/web/v1/search/notes"page_count = 20  # 爬取的页数, 一页有 20 条笔记 最多只能爬取220条笔记for page in range(1, page_count + 1):data = {"ext_flags": [],"image_formats": ["jpg", "webp", "avif"],"keyword": keyword,"note_type": 0,"page": page,"page_size": 20,'search_id': xhs_sign_obj.call('searchId'),"sort": "general"}response = post_request(search_url, uri='/api/sns/web/v1/search/notes', data=data)json_data = response.json()try:notes = json_data['data']['items']except:print('================爬取完毕================')breakfor note in notes:note_id = note['id']xsec_token = note['xsec_token']if len(note_id) != 24:continueget_note_info(note_id, xsec_token)

获取笔记详情并保存

def get_note_info(note_id, xsec_token):note_url = 'https://edith.xiaohongshu.com/api/sns/web/v1/feed'data = {"source_note_id": note_id,"image_scenes": ["jpg", "webp", "avif"],"extra": {"need_body_topic": "1"},"xsec_token": xsec_token,"xsec_source": "pc_search"}response = post_request(note_url, uri='/api/sns/web/v1/feed', data=data)json_data = response.json()try:note_data = json_data['data']['items'][0]except:print(f'笔记 {note_id} 不允许查看')returnsave_data(note_data, note_id, xsec_token)

爬取关键词相关的小红书笔记

keyword_search(keyword)

在这里插入图片描述
在这里插入图片描述

数据分析逻辑详解

加载数据由爬虫程序生成的 CSV 文件。

import pandas as pddata = pd.read_csv(r'秋招和春招到底哪个机会多.csv')

在这里插入图片描述
对爬取到的数据进行去重、文本清洗和中文分词。

xhs_content = data['笔记内容']
xhs_content = xhs_content.drop_duplicates()# 数据清洗
xhs_content = xhs_content.apply(clean_text)
# 对小红书内容进行分词
segment_list = segment_text(xhs_content)

利用 matplotlib 和 wordcloud 库生成词云图和柱状图

# 绘制词云图
generate_wordcloud(segment_list)
# 绘制总的词频图
plot_word_frequency(segment_list)

绘图结果如下:
在这里插入图片描述
在这里插入图片描述
其他绘图:
在这里插入图片描述
blog.csdnimg.cn/direct/806109a179dd4d7894d63576f2c74a25.png)

http://www.dtcms.com/a/558740.html

相关文章:

  • 开发指南140-跨服务数据范围限定
  • 网站建设实践心得体会wordpress 固定导航
  • 做网站可以不写代码百度推广投诉人工电话
  • Spring AI--工具调用
  • 网站的分辨率是多少平面设计师招聘广告文案
  • x402支付协议:促AI资产从概念走向落地
  • 重庆永川网站建设苏州公司网站建设价格
  • 做网站的是什么职位wordpress 分类图片尺寸
  • LeetCode LCR 085 括号生成
  • 域名怎么建设网站中国建设招标网住建部网站
  • 龙岩网站建设哪里比较好平潭县建设局网站
  • PCB设计<囫囵吞枣学习法>: 21_PCB设计之调整丝印和添加文字
  • 可信赖的常州网站建设电影网站建设成本
  • 农药化肥网站建设seo应该如何做
  • 机械加工网站平台北京网站优化常识
  • 做网站时兼容分辨率郑州做网站和app的公司
  • 安徽元鼎建设公司网站深圳软件公司排行
  • 动手学强化学习 第5章时序差分算法
  • 网站 改版方案上海最大的外贸公司
  • 中国十大大型门户网站网站开发的时间流程
  • Cache 策略
  • 百度网站分析怎么上国外购物网站
  • 二级域名网站查询入口全球搜索引擎排行榜
  • 对比推理 概念
  • React Native第四章
  • 西安网站建设技术外包网站性能优化
  • 乐清网站的建设是在百度中建设网站?
  • 大连网站建设报价优质商家网络销售是什么工作内容
  • 鞋材加工东莞网站建设appstore下载免费软件
  • IOCP + 重叠I/O 实例代码