使用Python爬虫爬取小红书完完整整的全过程

作者:松鼠爱吃饼干 时间:2022-03-23 05:12:44 

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于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爬虫爬取小红书完完整整的全过程

总结

其实小红书爬虫的抓取并不是特别的难,关键在于思路以及使用的方法是什么。

来源:https://www.cnblogs.com/hhh188764/archive/2021/01/19/14297882.html

标签:Python,爬虫,小红书
0
投稿

猜你喜欢

  • Sub-Pixel Bug?!

    2010-03-24 18:09:00
  • Python 实现敏感目录扫描的示例代码

    2021-08-21 05:47:14
  • python实现推箱子游戏

    2023-08-26 14:22:39
  • 解密ThinkPHP3.1.2版本之独立分组功能应用

    2023-11-20 09:06:02
  • 利用Python实现原创工具的Logo与Help

    2021-06-03 20:43:05
  • python Flask框架之HTTP请求详解

    2023-10-02 01:52:55
  • python实现图片彩色转化为素描

    2021-12-02 03:57:36
  • python shapely.geometry.polygon任意两个四边形的IOU计算实例

    2021-09-23 03:19:46
  • 可编辑下拉框的2种实现方式

    2024-04-22 13:08:08
  • python迭代器自定义类的具体方法

    2023-07-08 06:17:30
  • 详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    2022-05-10 01:18:53
  • 如何使用Python抓取网页tag操作

    2023-11-11 12:15:24
  • 详解Python yaml模块

    2022-08-14 12:15:18
  • 基于Python实现视频转字符画动漫小工具

    2022-12-20 04:33:54
  • 一种简单的ID生成策略: Mysql表生成全局唯一ID的实现

    2024-01-25 09:55:41
  • Python的Bottle框架中获取制定cookie的教程

    2021-06-28 02:34:20
  • Python应用库大全总结

    2023-05-14 01:57:19
  • python中设置超时跳过,超时退出的方式

    2023-12-25 01:38:20
  • 比较规范的验证Email地址是否正确的正则表达式

    2009-07-28 17:55:00
  • python3.9之你应该知道的新特性详解

    2021-09-01 12:13:42
  • asp之家 网络编程 m.aspxhome.com