使用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中使用mechanize模块模拟浏览器功能
May 05 Python
mac系统安装Python3初体验
Jan 02 Python
python3 读取Excel表格中的数据
Oct 16 Python
浅析python参数的知识点
Dec 10 Python
Python3爬楼梯算法示例
Mar 04 Python
python gensim使用word2vec词向量处理中文语料的方法
Jul 05 Python
简单了解python协程的相关知识
Aug 31 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
python中id函数运行方式
Jul 03 Python
python 调用Google翻译接口的方法
Dec 09 Python
python中实现栈的三种方法
Dec 19 Python
python利用appium实现手机APP自动化的示例
Jan 26 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
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python中类型检查的详细介绍
2017/02/13 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
python得到单词模式的示例
2018/10/15 Python
python实现函数极小值
2019/07/10 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
python异常触发及自定义异常类解析
2019/08/06 Python
详解python中的lambda与sorted函数
2020/09/04 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
股权转让协议书
2014/04/12 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP