爬虫 — App 爬虫(一)

news2024/11/26 2:30:02

目录

  • 一、介绍
  • 二、APP 爬虫常见反爬
  • 三、APP 抓包常用工具
  • 四、模拟器
  • 五、安装 APP
    • 1、下载 APP
    • 2、安装 APP
  • 六、fiddler
    • 1、工作原理
    • 2、安装
    • 3、基本介绍
  • 七、环境配置
    • 1、fiddler 的配置
    • 2、夜神模拟器的配置
  • 八、案例

一、介绍

爬虫分类——数据来源

1、PC 端爬虫(网页端爬虫)

  • 找数据接口(requests,scrapy等)
  • selenium

2、APP 端爬虫

  • 找数据接口

    获取数据接口——fiddler

    获取 APP 与服务器进行交互的数据包——模拟器

  • appium

二、APP 爬虫常见反爬

1、抓不到数据包请求

2、抓取数据包里的参数涉及加密(APP 逆向)

三、APP 抓包常用工具

抓包软件名称支持的操作系统适用平台调试难易程度软件功能程度
fiddlerWindows/Linux网页端、APP 端一般
mitmproxyWindows/Mac/Linux网页端、APP 端一般
packetCapture安卓APP 端简单

四、模拟器

1、安装夜神模拟器安装包;

点击下载夜神模拟器安装包

2、安装好后桌面会多出两个软件,点击模拟器助手;
在这里插入图片描述

3、点击“多开管理”;

在这里插入图片描述

4、点击“添加模拟器”,新建一个模拟器;

在这里插入图片描述

5、选择一个模拟器;

在这里插入图片描述

6、点击设置;

在这里插入图片描述

7、选择"手机版"后,点击“保存设置”;

在这里插入图片描述

8、启动模拟器;

在这里插入图片描述

9、界面启动成功;

在这里插入图片描述

五、安装 APP

点击下载 APP 应用安装包

1、下载 APP

1、输入需要安装的 APP 名称,点击搜索;

在这里插入图片描述

2、点击“查看”;

在这里插入图片描述

3、取消选择框;

在这里插入图片描述

4、点击“普通下载”;

在这里插入图片描述

2、安装 APP

1、直接把下载好的 apk 拖拽到模拟器(常用);

2、通过命令进行安装。

六、fiddler

1、工作原理

在这里插入图片描述

2、安装

点击进入官网下载地址

点击进入百度网盘地址

1、点击“I Agree”;

在这里插入图片描述

2、选择安装路径,点击“Install”;

在这里插入图片描述

3、点击“Close”;

在这里插入图片描述

4、这个软件不会自动在桌面上创建快捷方式,可以自己手动创建,

在安装路径文件夹里找到“Fiddler.exe”文件,右键点击,选择“发送到”,选择“桌面快捷方式”;

在这里插入图片描述

3、基本介绍

1、界面展示

在这里插入图片描述

2、快捷功能区

在这里插入图片描述

1:给会话添加备注信息

2:重新加载当前会话

3:删除会话选项

4:放行,和断点对应

5:响应模式,当 fiddler 拿到远程的 response 后是缓存起来一次响应给客户端还是以 stream 的方式直接响应

6:解码,有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码

7:查找会话

8:保存会话

9:截屏,截屏后,会以会话的方式返回一个截图

3、常用功能

清空数据包

在这里插入图片描述

停止抓包

在这里插入图片描述

保存数据包
在这里插入图片描述

打断点

在这里插入图片描述

更多内容可点击参考

七、环境配置

1、fiddler 的配置

HTTPS

让 fiddler 能够捕获 https 的请求

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

检查证书是否安装成功

在这里插入图片描述

在这里插入图片描述

如果能看到这两个证书,就说明证书已经安装成功了

Connections

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后重新启动 fiddler

2、夜神模拟器的配置

1、打开夜神模拟器,在桌面上找到“工具”并点击,然后找到“设置”并点击;

在这里插入图片描述

2、滑动到最底部,点击“关于平板电脑”;

在这里插入图片描述

3、滑动到最底部,不停的点击“版本号”;

在这里插入图片描述

4、直到出现“您现在处于开发者模式”为止;

在这里插入图片描述

5、点击返回上一页,会出现“开发者选项”,点击进去;

在这里插入图片描述

6、打开“USB调试”,点击“确定”;

在这里插入图片描述

7、返回桌面,打开浏览器,点击“设置”;

在这里插入图片描述

8、选择“隐私和安全”;

在这里插入图片描述

9、点击取消选中“显示安全警告”;

在这里插入图片描述

10、然后重启模拟器,点击“设置”,找到“WLAN”,点击进入;

在这里插入图片描述

11、在“WiredSSID”上长按鼠标左键,点击“修改网络”;

在这里插入图片描述

12、可按 win+R 后,输入 cmd 进入电脑终端;

在这里插入图片描述

13、回到桌面,点击浏览器,在地址栏里输入 ip 地址和端口号后,点击“FiddlerRoot certificate”(如没有出现此页面可重新启动模拟器);

在这里插入图片描述

14、点击“下载”;

在这里插入图片描述

15、点击“下载已完成”;

在这里插入图片描述

16、填入“证书名称”后,点击“确定”;

在这里插入图片描述

17、此时,会跳出弹窗提示,需要设置密码,点击“确定”;

在这里插入图片描述

18、点击“密码”;

在这里插入图片描述

19、输入密码后,点击“继续”;

在这里插入图片描述

20、点击“完成”。

在这里插入图片描述

八、案例

目标 APP:当当

需求:爬取书名、作者、出版社、好评率、价格

1、在“豌豆荚”网站下载好目标 APP 后,将 APP 拖拽进模拟器中

2、打开 APP,在搜索框里输入内容,输入内容前,先在 fiddler 里清空数据包

在这里插入图片描述

3、点击“Find”查找相关数据包后,点击“Find Sessions”

在这里插入图片描述

4、依次点击高亮显示的数据包,找到有数据的

在这里插入图片描述

5、数据为乱码,点击图中框框的位置

在这里插入图片描述

6、点击后正常显示

在这里插入图片描述

7、数据为 json 格式,点击“JSON”,更方便查看数据

在这里插入图片描述

8、复制数据包的 url

在这里插入图片描述

代码实现

import requests  # 导入 requests 模块,用于发送网络请求
# pip install rich
from rich import print as rprint  # 导入 rich 模块的 print 函数,用于打印带样式的输出

# 目标 url
url = 'http://mapi7.dangdang.com/index.php?page_version=new2&access-token=&time_code=0a700316b85a0d578709bd673dd123dc&img_size=e&client_version=10.12.4&pageSize=10&union_id=537-100998&timestamp=1687961723&province_id=111&permanent_id=20230628220338845805790296886915991&a=all-search&global_province_id=111&page_action=search&c=search&sort_type=default_0&keyword=%E7%88%AC%E8%99%AB&udid=4aa439184898c3fbab8ed2cd869b77e1&user_client=android&page=1'

# 发送 get 请求,获取响应对象
res = requests.get(url)

# 使用 rich 模块的 print 函数打印响应对象中的 JSON 数据的 product 字段
# rprint(res.json()['data']['product']) # 返回的数据类型 list

# 获取响应对象中的 product 列表
product_lst = res.json()['data']['product']

# 遍历 product 列表
for product in product_lst:
    # 创建字典
    item = {}
    item['title'] = product.get('productName')  # 获取商品名称
    item['author'] = product.get('author')  # 获取商品作者
    item['publisher'] = product.get('publisher')  # 获取商品出版社
    item['commentCount'] = product.get('commentCount')  # 获取商品评论数
    item['price'] = product.get('price')  # 获取商品价格
    print(item)  # 打印商品信息
    print('-' * 100)  # 分隔线

注意:

1、pip install rich 安装报错

检查是否开启 fiddler,开启的话可能会报错,关闭 fiddler,再重新安装即可

2、url 里面

page:控制翻页
keyword:关键字搜索

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1029312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP风险查询:抵御DDoS攻击和CC攻击的关键一步

随着互联网的普及,网络攻击变得越来越普遍和复杂,对企业和个人的网络安全构成了重大威胁。其中,DDoS(分布式拒绝服务)攻击和CC(网络连接)攻击是两种常见且具有破坏性的攻击类型,它们…

十、阶段实践练习

阶段实践练习 1.阶段实践练习1.1.练习1~~~~象棋口诀1.2.练习2~~~~输出汇款单1.3.练习3~~~~输出个人信息1.4.练习4~~~~计算月收入1.5.练习5~~~~计算商和余数1.6.练习6~~~~判断成绩能否及格1.7.练习7~~~~话费充值1.8.练习8~~~~货车装西瓜 ———————————————————…

一百八十一、Hive——海豚调度HiveSQL任务时当Hive的计算引擎是mr或spark时脚本的区别(踩坑,附截图)

一、目的 当Hive的计算引擎是spark或mr时,发现海豚调度HQL任务的脚本并不同,mr更简洁 二、Hive的计算引擎是Spark时 (一)海豚调度脚本 #! /bin/bash source /etc/profile nowdatedate --date0 days ago "%Y%m%d" y…

[Git入门]---gitee注册及代码提交

文章目录 1.Gitee是什么2.gitee注册3.git工具及图形化界面工具安装4.gitee仓库创建5.进行本地仓库与远端gitee仓库的链接6.git三板斧addcommitpush 7.gitee提交代码常见问题 1.Gitee是什么 gitee是基于git代码托管和研发协作的国内平台,在上面可以托管个人或公司代…

XSS-labs1-20关通过手册

目录 XSSlabs1-20关通关手册第一关level-1(无任何过滤)第二关level-2(闭合标签)第三关level-3(单引号闭合js事件函数绕过)第四关level-4(双引号闭合js事件函数绕过)第五关level-5&am…

Excel 拆分单元格数据(公式拆分、智能填充、分列)

将姓名工号拆分成 姓名 和 工号 方法1 在 B2 单元格输入 LEFT($A2, FIND(":", $A2) - 1)在 C2 单元格输入 RIGHT($A2, LEN($A2) - FIND(":", $A2))然后 ctrl d 向下填充即可 方法2 在 B2 单元格输入 李金秀,然后选中 B3 单元格&#xff0c…

LeetCode 753. 破解保险箱【欧拉回路,DFS】困难

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

实现AIGC更好的数据存力,这家科技巨头为我们指明了方向

存力即数据存储能力 蕴藏着巨大的发展机会 【全球存储观察 | 热点关注】 2023年,全球被ChatGPT的热潮席卷,拥抱AIGC的创新赛道成为众多企业的新选择。 全球存储观察分析指出,影响AIGC发展的三大因素也日益凸显,即算…

ROS之创建第一个程序

打开终端 创建工作空间 mkdir ros_ws进入工作空间 cd ros_ws创建src文件夹(放源程序) mkdir src编译工作空间 catkin_make打开vscode(从终端打开此工程) code .进入src文件夹 cd src创建功能包demo1,并加载依赖…

[Linux入门]---Linux编译器gcc/g++使用

文章目录 1.背景知识2.gcc如何完成编译运行工作预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)链接(生成可执行文件) 3.函数库动态库静态库动静态库的区别 4.gcc选项 1.…

一键自助建站系统源码带安装教程 傻瓜式部署搭建,让您的建站更高效

在这个数字时代,网站已成为企业或个人展示形象、推广业务的重要工具。为了满足这一需求,许多自助建站系统应运而生,大大降低了用户建站的门槛。给大家分享一款傻瓜式部署搭建的一键自助建站系统源码,让您轻松拥有高效建站能力。 …

虹科教您 | 可实现带宽计量和延迟计算的时间敏感网络测试工具RELY-TSN-LAB操作指南与基本功能测试

1. RELY-TSN-LAB产品概述 时间敏感网络(TSN)能够合并OT和IT世界,这将是真正确保互操作性和标准化的创新性技术。这项技术的有效开发将显著降低设备成本、维护、先进分析服务的无缝集成以及减少对单个供应商的依赖。为了在这些网络中实现确定性,需要控制…

[LLM+AIGC] 01.应用篇之中文ChatGPT初探及利用ChatGPT润色论文对比浅析(文心一言 | 讯飞星火)

近年来,人工智能技术火热发展,尤其是OpenAI在2022年11月30日发布ChatGPT聊天机器人程序,其使用了Transformer神经网络架构(GPT-3.5),能够基于在预训练阶段所见的模式、统计规律和知识来生成回答&#xff0c…

【Linux操作系统实战】Linux基础命令面试必备(二)

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

【rabbitMQ】-延迟队列-模拟控制智能家居的操作指令

这个需求为控制智能家居工作,把控制智能家居的操作指令发到队列中,比如:扫地机、洗衣机到指定时间工作 一.什么是延迟队列? 延迟队列存储的对象是对应的延迟消息,所谓“延迟消息” 是指当消息被发送以后,并…

数据中心中什么最重要?

在数据中心中,最重要的要素可以总结为以下几点: 数据安全:数据中心是存储和处理大量敏感数据的关键设施,因此数据安全是最重要的要素之一。数据中心必须采取严格的物理安全措施,如门禁、监控和防火措施,以确…

Stable Diffusion基础:精准控制之ControlNet

在AI绘画中精确控制图片的生成是一件比较困难的事情,炼丹师们经常需要大量抽卡才能得到一张满意的图片,不过随着 ControlNet 的诞生,这一问题得到了很大的缓解。 ControlNet 提供了十几种控制网络模型,有的可以控制画面的结构&…

利用大模型知识图谱技术,告别繁重文案,实现非结构化数据高效管理

我,作为一名产品经理,对文案工作可以说是又爱又恨,爱的是文档作为嘴替,可以事事展开揉碎讲清道明;恨的是只有一个脑子一双手,想一边澄清需求一边推广宣传一边发布版本一边申报认证实在是分身乏术&#xff0…

【uniapp】小程序开发:2 安装uni-ui组件库、使用pinia状态管理、自定义http请求

一、安装uni-ui组件库 1、安装 pnpm i -D sass pnpm i dcloudio/uni-ui2、配置组件自动导入 使用 npm 安装好 uni-ui 之后,需要配置 easycom 规则,让 npm 安装的组件支持 easycom 打开项目根目录下的 pages.json 并添加 easycom 节点: //…

LeetCode 75-03:拥有最多糖果的孩子

func kidsWithCandies(candies []int, extraCandies int) []bool {maxCandy : 0for _, v : range candies{if v > maxCandy{maxCandy v}}res : make([]bool, len(candies))for i,candy : range candies{res[i] candy extraCandies > maxCandy}return res }