使用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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
flask中过滤器的使用详解
Aug 01 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
python return逻辑判断表达式实现解析
Dec 02 Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python实现打砖块游戏
Feb 25 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
再谈python_tkinter弹出对话框创建
Mar 20 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
PHP实现用户登录的案例代码
2018/05/10 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
Python高并发和多线程有什么关系
2020/11/14 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
小学毕业感言150字
2014/02/05 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
班级活动总结格式
2014/08/30 职场文书
2014年图书室工作总结
2014/12/09 职场文书
听证会主持词
2015/07/03 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
Pygame Draw绘图函数的具体使用
2021/11/17 Python
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python