热门推荐
小红书很难爬?最新爬取方法教给你啦~
2024-10-31 16:13


小红书很难爬?最新爬取方法教给你啦~


大家好,我是Kuls。

之前写的那篇App抓包软件charles的配置说过,超过30在看,马上更下一篇。有读者问我怎么爬App,我手把手教了他(多图警告)

所以加班加点给大家写了今天这篇文章。

本文将会带着大家完完整整的爬取小红书的全过程

需要做的前提工作就是装配好mitmproxy

具体的配置过程,我建议大家参照崔大写的来进行安装

https://zhuanlan.zhihu.com/p/33747453

首先,我们打开之前大家配置好的charles

我们来简单抓包一下小红书小程序(注意这里是小程序,不是app)

不选择app的原因是,小红书的App有点难度,参照网上的一些思路,还是选择了小程序

1、通过charles抓包对小程序进行分析

小红书很难爬?最新爬取方法教给你啦~_python

我们打开小红书小程序,随意搜索一个关键词


小红书很难爬?最新爬取方法教给你啦~_python_02

按照我的路径,你可以发现列表中的数据已经被我们抓到了。

但是你以为这就结束了?

不不不


小红书很难爬?最新爬取方法教给你啦~_数据挖掘_03

通过这次抓包,我们知道了可以通过这个api接口获取到数据

但是当我们把爬虫都写好时,我们会发现headers里面有两个很难处理的参数

"authorization"和"x-sign"

这两个玩意,一直在变化,而且不知道从何获取。

所以

2、使用mitmproxy来进行抓包

其实通过charles抓包,整体的抓取思路我们已经清晰

就是获取到"authorization"和"x-sign"两个参数,然后对url进行get请求

这里用到的mitmproxy,其实和charles差不多,都是抓包工具

但是mitmproxy能够跟Python一起执行

这就舒服很多啊

简单给大家举例子

在mitmproxy中提供这样的方法给我们,我们可以通过request对象截取到request headers中的url、cookies、host、method、port、scheme等属性

这不正是我们想要的吗?

我们直接截取"authorization"和"x-sign" 这两个参数

然后往headers里填入

整个就完成了。

以上是我们整个的爬取思路,下面给大家讲解一下代码怎么写

其实代码写起来并不难

首先,我们必须截取到搜索api的流,这样我们才能够对其进行获取信息

我们通过判断flow的request里面是否存在搜索api的url

来确定我们需要抓取的请求

通过上述代码,我们就能够把最关键的三个参数拿到手了,接下来就是一些普通的解析json了。

最终,我们可以拿到自己想要的数据了


小红书很难爬?最新爬取方法教给你啦~_python_04

如果你想要获取到单篇数据,可以拿到文章id后抓取

"https://www.xiaohongshu.com/discovery/item/" + str(id)


小红书很难爬?最新爬取方法教给你啦~_数据挖掘_05

这个页面headers里需要带有cookie,你随意访问一个网站都可以拿到cookie,目前看来好像是固定的

最后,可以把数据放入csv


小红书很难爬?最新爬取方法教给你啦~_python_06


    以上就是本篇文章【小红书很难爬?最新爬取方法教给你啦~】的全部内容了,欢迎阅览 ! 文章地址:http://lianchengexpo.xrbh.cn/quote/7187.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://lianchengexpo.xrbh.cn/mobile/ , 查看更多