使用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 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
python使用folium库绘制地图点击框
Sep 21 Python
python爬取微信公众号文章的方法
Feb 26 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
Python类型转换的魔术方法详解
Dec 23 Python
python实现商品进销存管理系统
May 30 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
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
python实现自动登录
2018/09/17 Python
Django配置文件代码说明
2019/12/04 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
优秀毕业大学生推荐信
2013/11/13 职场文书
怎样写好工作计划
2019/04/10 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
django 认证类配置实现
2021/11/11 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python