使用Python爬虫爬取小红书完完整整的全过程


Posted in Python onJanuary 19, 2021

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于Python进击者 ,作者kuls

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

小红书

首先,我们打开之前大家配置好的charles

我们来简单抓包一下小红书小程序(注意这里是小程序,不是app)

不选择app的原因是,小红书的App有点难度,参照网上的一些思路,还是选择了小程序

1、通过charles抓包对小程序进行分析

使用Python爬虫爬取小红书完完整整的全过程

我们打开小红书小程序,随意搜索一个关键词

使用Python爬虫爬取小红书完完整整的全过程

按照我的路径,你可以发现列表中的数据已经被我们抓到了。

但是你以为这就结束了?

不不不

使用Python爬虫爬取小红书完完整整的全过程

通过这次抓包,我们知道了可以通过这个api接口获取到数据

但是当我们把爬虫都写好时,我们会发现headers里面有两个很难处理的参数

"authorization"和"x-sign"

这两个玩意,一直在变化,而且不知道从何获取。

所以

2、使用mitmproxy来进行抓包

其实通过charles抓包,整体的抓取思路我们已经清晰

就是获取到"authorization"和"x-sign"两个参数,然后对url进行get请求

这里用到的mitmproxy,其实和charles差不多,都是抓包工具

但是mitmproxy能够跟Python一起执行

这就舒服很多啊

简单给大家举例子

def request(flow):
   print(flow.request.headers)

在mitmproxy中提供这样的方法给我们,我们可以通过request对象截取到request headers中的url、cookies、host、method、port、scheme等属性

这不正是我们想要的吗?

我们直接截取"authorization"和"x-sign" 这两个参数

然后往headers里填入

整个就完成了。

以上是我们整个的爬取思路,下面给大家讲解一下代码怎么写

其实代码写起来并不难

首先,我们必须截取到搜索api的流,这样我们才能够对其进行获取信息

if 'https://www.xiaohongshu.com/fe_api/burdock/weixin/v2/search/notes' in flow.request.url:

我们通过判断flow的request里面是否存在搜索api的url

来确定我们需要抓取的请求

authorization=re.findall("authorization',.*?'(.*?)'\)",str(flow.request.headers))[0]
x_sign=re.findall("x-sign',.*?'(.*?)'\)",str(flow.request.headers))[0]
url=flow.request.url

通过上述代码,我们就能够把最关键的三个参数拿到手了,接下来就是一些普通的解析json了。

最终,我们可以拿到自己想要的数据了

使用Python爬虫爬取小红书完完整整的全过程

如果你想要获取到单篇数据,可以拿到文章id后抓取

"https://www.xiaohongshu.com/discovery/item/" + str(id)

使用Python爬虫爬取小红书完完整整的全过程

这个页面headers里需要带有cookie,你随意访问一个网站都可以拿到cookie,目前看来好像是固定的

最后,可以把数据放入csv

使用Python爬虫爬取小红书完完整整的全过程

总结

其实小红书爬虫的抓取并不是特别的难,关键在于思路以及使用的方法是什么。

到此这篇关于使用Python爬虫爬取小红书完完整整的全过程的文章就介绍到这了,更多相关Python爬取小红书内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
python 编程之twisted详解及简单实例
Jan 28 Python
PyQt5每天必学之拖放事件
Aug 27 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
详解Python中is和==的区别
Mar 21 Python
Django 表单模型选择框如何使用分组
May 16 Python
python解释器安装教程的方法步骤
Jul 02 Python
详解KMP算法以及python如何实现
Sep 18 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
Python OpenCV实现图形检测示例详解
Apr 08 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 Python
python 自动识别并连接串口的实现
Jan 19 #Python
python爬取抖音视频的实例分析
Jan 19 #Python
python中的插入排序的简单用法
Jan 19 #Python
Python实现淘宝秒杀功能的示例代码
Jan 19 #Python
Python爬虫后获取重定向url的两种方法
Jan 19 #Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 #Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 #Python
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php处理复杂xml数据示例
2016/07/11 PHP
仿百度输入框智能提示的js代码
2013/08/22 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
JS实现的简单表单验证功能示例
2017/10/13 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python属于软件吗
2020/06/18 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
小学班级口号
2014/06/09 职场文书
教师四风问题整改措施
2014/09/25 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
求职自我评价怎么写
2015/03/09 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
MySQL导致索引失效的几种情况
2022/06/25 MySQL