使用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中pygame模块用法实例
Oct 09 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
处理Python中的URLError异常的方法
Apr 30 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
python实现txt文件格式转换为arff格式
May 31 Python
Python设计模式之策略模式实例详解
Jan 21 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
python编写扎金花小程序的实例代码
Feb 23 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速度全攻略
2006/10/09 PHP
中英文字符串翻转函数
2008/12/09 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
PHP 验证登陆类分享
2015/03/13 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
Python加载带有注释的Json文件实例
2018/05/23 Python
windows下python安装pip图文教程
2018/05/25 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Python标准库itertools的使用方法
2020/01/17 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
复古服装:RetroStage
2019/05/10 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
气象学专业个人求职信
2014/04/22 职场文书
会计求职信范文
2014/05/24 职场文书
期末复习计划
2015/01/19 职场文书
歼十出击观后感
2015/06/11 职场文书