使用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 23 Python
在Python中操作字典之update()方法的使用
May 22 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
pandas数据拼接的实现示例
Apr 16 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
Python更换pip源方法过程解析
May 19 Python
通过cmd进入python的步骤
Jun 16 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
Terran兵种对照表
2020/03/14 星际争霸
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP伪造referer实例代码
2008/09/20 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
php短信接口代码
2016/05/13 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jquery按回车提交数据的代码示例
2013/11/05 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
星球大战与Python之间的那些事
2016/01/07 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
读书小明星事迹材料
2014/05/03 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
公司授权委托书样本
2014/09/15 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
护理培训心得体会
2016/01/22 职场文书
mysql 获取相邻数据项
2022/05/11 MySQL