使用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中尝试多线程编程的一个简明例子
Apr 07 Python
浅谈Python单向链表的实现
Dec 24 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
从django的中间件直接返回请求的方法
May 30 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
python实现超市管理系统(后台管理)
Oct 25 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
python如何实现单链表的反转
Feb 10 Python
Python对象的属性访问过程详解
Mar 05 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
Python PyQt5标准对话框用法示例
2017/08/23 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
django模板结构优化的方法
2019/02/28 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python argparser的具体使用
2019/11/10 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
一套软件测试笔试题
2014/07/25 面试题
竞聘书模板
2014/03/31 职场文书
倡议书格式
2014/04/14 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis