采集小红书笔记详情页的方法,大部分人都想得复杂了

一般来说,社交媒体都有列表页和详情页、个人主页三大页面,列表页一般包含搜索结果页、话题聚合页等等,详情页就是点开某一条笔记或者动态的具体页面;

小红书当然也不例外,比如下面这个话题聚合页:

https://www.xiaohongshu.com/page/topics/5bfd5dcb0af6350001652788?fullscreen=true&naviHidden=yes&xhsshare=CopyLink

就是列表页,列表页通常只有笔记的部分数据,这是因为列表页要显示很多笔记,每个笔记就只能显示梗概信息,比如封面图、标题、点赞数,而更具体的内图、内容、转发评论收藏数,则只能去详情页获取,详情页链接一般带有笔记的 id:

https://www.xiaohongshu.com/explore/6596bb80000000001802b5d7

在这里插入图片描述

所以,使用 {} 爬虫获取到列表信息后,如果需要更详细的笔记数据则去详情页获取。

As we all known,小红书的反爬做的还算比较到位,很多接口需要验证签名比较麻烦;So,对于有经验的小红书爬虫选手来说,他会直奔签名去。

说巧不巧,我有两个朋友,就是这样干的,然后他问我有没有简单的办法。

其实呢,这个接口,直接使用 requests.get 就能获取数据,快刀斩乱麻。

import requests
headers = {
    'authority': 'www.xiaohongshu.com',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9,en-CN;q=0.8,en;q=0.7,es-MX;q=0.6,es;q=0.5',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
}

response = requests.get('https://www.xiaohongshu.com/explore/6596bb80000000001802b5d7', headers=headers)

print(response.text)

打印响应如下:

在这里插入图片描述

打印可以直接出来页面数据,再加上上图第一行,我大致确定详情页应该是采用是服务端渲染(Server Side Rendering,简称 SSR),

即在服务端就把网页内容渲染好了,浏览器直接获取渲染好的 HTML,这有利于缩短首屏加载时间和搜索引擎优化 SEO,

而浏览器渲染 (Client Side Rendering,简称 CSR),浏览器需要先加载后端返回的 HTML 和 JavaScript,然后渲染网页,耗时肯定比 SSR 长,

而且由于搜索引擎爬虫可以直接读取服务器端生成的 HTML,因此 SSR 对 SEO 较为友好,有利于搜索引擎收录,

又因为小红书网页版是采用 Vue 这种数据驱动视图的前端框架开发,就更有必要采用 SSR 来做 SEO 了,

这就是为什么经常能在浏览器中搜索到小红书社区的笔记的原因,学以致用了有木有。

SSR 对搜索引擎爬虫友好,当然也就对一般的爬虫友好,这就是为什么 requests.get 能直接请求到数据的原因。

解析数据直接使用 xpath 就好:

from lxml import etree
html = etree.HTML(response.text)
title = html.xpath('//meta[@name="og:title"]/@content')[0].strip()
content = html.xpath('//meta[@name="description"]/@content')[0].strip()
image_url_list = html.xpath('//meta[@name="og:image"]/@content')
print(title, content, image_url_list)

comment_cnt = html.xpath('//meta[@name="og:xhs:note_comment"]/@content')[0].strip()
like_cnt = html.xpath('//meta[@name="og:xhs:note_comment"]/@content')[0].strip()
collect_cnt = html.xpath('//meta[@name="og:xhs:note_collect"]/@content')[0].strip()
print(comment_cnt, like_cnt, collect_cnt)

其打印如下:

华为nova 12系列 | 新品开售 华为nova 12 Pro、华为nova 12,今日10:08 正式开售! 	 12号色、樱语白、曜金黑,瞩目配色,浪漫💗在握; 前置首发三种人像美颜主题,让你自拍真实又好看; 更有鸿蒙智慧通信和HarmonyOS 4加持,流畅体验更出色。 	 #华为nova12   #出色蓝不住  #华为 ['http://sns-webpic-qc.xhscdn.com/202401102035/a2125d5cc798c7d63295c12f32feedfe/spectrum/1040g0k030tgsc5ci4s0049uqgf8gnvr3gn4dbro!nd_dft_wlteh_jpg_3', 'http://sns-webpic-qc.xhscdn.com/202401102035/5de18f6f298ab03bd6c7c927dcc6d11a/spectrum/1040g0k030tgsc5e6kq0049uqgf8gnvr377tqujo!nd_dft_wlteh_jpg_3']
10+ 10+ 10+

为什么数据是 10+ 呢,因为请求的 headers 没带登录凭证信息 cookie,带上 cookie 请求就能获取到具体数字。

这个故事告诉我们:

他强由他强,清风拂山冈。他横任他横,明月照大江。他自狠来他自恶,我自一口真气足。

在这里插入图片描述

这个故事还告诉我们:

实践,是检验真理的唯一标准。

不妨多多点赞,读者们的支持是本号更新的最大动力。

山冈。他横任他横,明月照大江。他自狠来他自恶,我自一口真气足。

这个故事还告诉我们:

实践,是检验真理的唯一标准。

不妨多多点赞,读者们的支持是本号更新的最大动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/313166.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高工微报告|智驾前视一体机趋势

传统智驾前视一体机赛道上,1V3R、1V5R产品如何升级备受关注。 根据日前调研获取的信息,1V3R、1V5R向轻量级行泊一体(典型为5V5R12U方案,算力平台5-20TOPS)迈进的具体市场空间,仍在验证阶段。 其中&#x…

java基于ssm框架的少儿编程在线培训系统论文

目 录 目 录 I 1 课题背景及研究内容 4 1.1 课题背景 4 1.2 开发目的和意义 4 2 相关技术和应用 4 2.1 VUE技术 4 2.2 Mysql数据库简介 5 2.3 SSM框架简介 6 2.4 Eclipse简介 6 2.5 B/S系统架构 6 3 系统分析 8 3.1可行性分析 8 3.1.1技术可行性 8 3.1.2经济可行性 8 3.1.3操作…

经验分享:智能知识库才是数字时代的企业必备选择

随着全球化和竞争的加剧,企业必须通过将知识作为战略资产进行管理,才能保持竞争优势。因此,建设有效的知识库系统,成为了数字时代企业必备的选择。决定企业成功或失败的不再仅仅是产品或服务的质量,而是如何有效利用知…

Redis的实现三:c语言实现平衡二叉树,通过平衡二叉树实现排序集

概况:Redis中的排序集数据结构是相当复杂的独特而有用的东西。它不仅提供了顺序排序数据的能力,而且具有按排名查询有序数据的独特特性。 Redis中的排序集 (Sorted Set)是一种特殊的数据结构,它结合了集合&#xff0…

mp4文件全部转换为mp3

问题 今天突发奇想,想把mp4视频转换为mp3来收听,于是想到了ffmpeg工具 步骤 安装ffmpeg环境 要在 Windows 上配置 FFmpeg 环境,你可以按照以下步骤进行操作: 下载 FFmpeg: 首先,你需要下载 FFmpeg 的 W…

【MYSQL】MYSQL 的学习教程(十二)之 MySQL 啥时候用记录锁,啥时候用间隙锁

在「读未提交」和「读已提交」隔离级别下,都只会使用记录锁;而对于「可重复读」隔离级别来说,会使用记录锁、间隙锁和 Next-Key 锁 那么 MySQL 啥时候会用记录锁,啥时候会用间隙锁,啥时候又会用 Next-Key 锁呢&#xf…

Apache OFBiz groovy 远程代码执行漏洞(CVE-2023-51467)复现

Apache OFBiz groovy 远程代码执行漏洞&#xff0c;攻击者可构造请求绕过身份认证&#xff0c;利用后台相关接口功能执行groovy代码&#xff0c;导致远程代码执行。 1.漏洞级别 高危 2.漏洞搜索 fofa app"Apache_OFBiz"3.影响范围 Apache OFBiz < 18.12.104…

网站开发第一弹---HTML01

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;网站开发flask框架 &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现…

【Spring Cloud】微服务架构演变及微服务架构介绍

文章目录 系统架构演变单体应用架构垂直应用架构分布式架构SOA 架构微服务架构 微服务架构介绍微服务架构的常见问题微服务架构的常见概念服务治理服务调用服务网关服务容错链路追踪 微服务架构的常见解决方案ServiceCombSpringCloudSpring Cloud Alibaba 总结 欢迎来到阿Q社区…

让企业的招投标文件、生产工艺、流程配方、研发成果、公司计划、员工信息、客户信息等核心数据更安全。

PC端访问地址1&#xff1a;www.drhchina.com PC端访问地址2&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 全方位立体式防护  让数据泄密无处遁形 信息防泄漏是一项系统的整体部署工程&#xff0c;加密监控已成为多数企事业单…

序章 初始篇—转生到vue世界!

Vue.js 是什么&#xff1f; Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项…

Java异常处理--异常处理的方式1

文章目录 一、异常处理概述二、方式1&#xff1a;捕获异常&#xff08;try-catch-finally&#xff09;&#xff08;1&#xff09;抓抛模型&#xff08;2&#xff09;try-catch-finally基本格式1、基本语法2、整体执行过程3、try和catch3.1 try3.2 catch (Exceptiontype e) &…

Arcgis10制图/建模小技巧:梯田地形

小编早年做城市设计的时候&#xff0c;还不知道怎么用gis生成地形&#xff0c;然后导入skechup&#xff1b;只会把cad的等高线导进su后一层层拉伸&#xff08;过程很繁琐&#xff09;&#xff0c;会得到梯田地形。梯田地形虽然不完全贴合实际&#xff0c;但也凑合能用&#xff…

Jupyter Notebook

2017年左右在大学里都听说过Jupyter Notebook&#xff0c;并且也安装用了一段时间&#xff0c;后来不知道什么原因没有用了。估计是那时候写代码的时候多一些&#xff0c;因为它可以直接写代码并运行结果&#xff0c;现在不怎么写代码了。 介绍 后缀名为.ipynb的json格式文件…

M-G552PJ1 IMU(惯性测量单元)CAN接口

一般描述 M-G552PJ1是一个小的形状因子惯性测量单元&#xff08;IMU&#xff09;&#xff0c;具有6个自由度&#xff1a;三轴角速率和 线性加速度&#xff0c;并提供了高稳定性和高精度的测量能力与使用的高精度 补偿技术。通过控制器局域网&#xff08;CAN&#xff09;接口…

计算机毕业设计----Springboot农业物资管理系统

项目介绍 农业物资管理系统&#xff0c;管理员可以对角色进行配置&#xff0c;分配用户角色&#xff1b; 主要功能包含&#xff1a;登录、注册、修改密码、零售出库、零售退货、采购订单管理、采购入库管理、采购退货管理、销售管理、财务管理、报表管理、物资管理、基本资料管…

superset未授权访问漏洞(CVE-2023-27524)复现

Superset是一个开源的数据探索和可视化平台。它由Apache软件基金会支持&#xff0c;旨在帮助用户通过直观的方式探索、分析和可视化复杂的数据集。Superset支持多种数据源&#xff0c;包括关系型数据库、NoSQL数据库和各种其他数据存储系统。Apache Superset 2.0.1 版本及之前版…

springboot057洗衣店订单管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 研究背景 如…

Java填充Execl模板并返回前端下载

功能&#xff1a;后端使用Java POI填充Execl模板&#xff0c;并返回前端下载 Execl模板如下&#xff1a; 1. Java后端 功能&#xff1a;填充模板EXECL,并返回前端 controller层 package org.huan.controller;import org.huan.dto.ExcelData; import org.huan.util.ExcelT…

DevOps搭建(十六)-Jenkins+K8s部署详细步骤

​ 1、整体部署架构图 2、编写脚本 vi pipeline.yml apiVersion: apps/v1 kind: Deployment metadata:namespace: testname: pipelinelabels:app: pipeline spec:replicas: 2selector:matchLabels:app: pipelinetemplate:metadata:labels:app: pipelinespec:containers:- nam…