【基础】【Python网络爬虫】【3.chrome 开发者工具】(详细笔记)

news2025/1/20 14:53:00

Python网络爬虫基础

  • chrome 开发者工具
    • 元素面板(Elements)
    • 控制台面板(Console)
    • 资源面板(Source)
    • 网络面板(Network)
      • 工具栏
      • Requests Table详情

chrome 开发者工具

​ 当我们爬取不同的网站是,每个网站页面的实现方式各不相同,我们需要对每个网站都进行分析。那是否有一些通用的分析方法?我分享下自己爬取分析的“套路”。在某个网站上,分析页面以及抓取数据,我用得最多的工具是 Chrome 开发者工具

	Chrome 开发者工具是一套内置于 Google Chrome 中的 Web 开发和调试工具,可用来对网站进行迭代、调试和分析。因为国内很多浏览器内核都是基于 Chrome 内核,所以国产浏览器也带有这个功能。例如:UC 浏览器、QQ 浏览器、360 浏览器等。

接下来,我们来看看 Chrome 开发者工具一些比较牛逼的功能。

元素面板(Elements)

​ 通过元素(Element)面板,我们能查看到想抓取页面渲染内容所在的标签、使用什么 CSS 属性(例如:class=“middle”)等内容。例如我想要抓取我知乎主页中的动态标题,在网页页面所在处上右击鼠标,选择“检查”,可进入 Chrome 开发者工具的元素面板。
在这里插入图片描述
通过这种方法,我们能快速定位出页面某个 DOM 节点,然后可以提取出相关的解析语句。鼠标移动到节点,然后右击鼠标,选择 “Copy”,能快速复制出 Xpath 、CSS selector 等内容解析库的解析语句。
在这里插入图片描述

控制台面板(Console)

控制台面板(Console)是用于显示JS和DOM对象信息的单独窗口。
在这里插入图片描述

资源面板(Source)

在资源面板(Source)页面可以查看到当前网页的所有源文件。

  • 在左侧栏中可以看到源文件以树结构进行展示。
  • 在中间栏这个地方使用来调试js代码的地方。
  • 右侧是断点调试功能区。
  • js解密会用到资源面板的功能
    在这里插入图片描述

网络面板(Network)

网络(Network)面板记录页面上每个网络操作的相关信息,包括详细的耗时数据、HTTP 请求与响应标头和 Cookie,等等。这就是我们通常说的抓包。
在这里插入图片描述

工具栏

在这里插入图片描述
Stop recording network log:默认情况下,只要开发者工具在开启状态,会记录所有的网络请求,当然,记录都是在Network 面板展示的。红色表示开启,灰色表示关闭。

Clear :清空所有数据,每一次重新分析是都需要清空之前的数据。

Filter:数据包过滤器。红色表示打开,蓝色表示关闭。经常来使用它来过滤出一些 HTTP 请求,例如过滤出使用 Ajax 发起的异步请求、图片、视频等。

  • Filter搜索框 :根据地址过滤,比如 :baidu.com,就只会过滤数据包地址中包含 baidu.com 的数据包。
  • Invert :Filter搜索框中取反过滤,比如:baidu.com,会过滤数据包地址中不包含 baidu.com的数据包。
  • Hide data URLs :用于是否隐藏 dataurl,那么什么是 dataurl 呢?传统的通常 img 标记的src属性指定了一个远程服务器的资源,浏览器针对每个外部资源需要向服务器发送一次拉取资源请求。而Data URL技术是图片数据以base64字符串格式嵌入到了页面中,和HTML融为一体。
  • all:所有请求数据(图片、视频、音频、js代码、css代码* )
  • XHR:XMLHttpRequest 的缩写,是ajax技术的核心,动态加载完成经常分析的一个内容
  • CSS: css样式文件
  • JS:JavaScript文件,是js解密常分析的一个页面
  • Img:Images 图片文件
  • Font: 字体文件(字体反扒)
  • DOC : Document,文档内容
  • WS: WebSocket,web端的socket数据通信,一般用于一些实时更新的数据
  • Wasm:WebAssembly,WASM(WebAssembly) 垃圾收集。WASM 是一种低级编程语言,源自 Mozilla 发起的 Asm.js 项目,设计提供比 Java 更快速的编译及执行,它允许开发者运用自己熟悉的语言编译,再借虚拟机引擎在浏览器内执行。
  • Manifest:显示通过manifest缓存的资源。包括很多信息,如js库文件会显示文件地址、大小和类型;
  • Has blocked cookies:仅显示具有阻止响应cookie的请求,此选项千万不要勾选。
  • Blocked Requests :仅显示被阻止的请求,此选项千万不要勾选。
  • 3rd-party requests:仅显示来源与页面来源不同的请求,此选项千万不要勾选。

Search :搜索框,只要在 ALL 里面出现的过的内容,就可以被直接搜索到。常用与数据检索与 JS 解密

Preserve log :保留日志。当分析在多个页面跳转的内容时,一定要勾上,不然当页面发生新的跳转是,历史数据全部都会被清空。保留日志,做爬虫是一定需要勾上

Disable cache :清空 JavaScript、css 文件的缓存,获取最新的。

Requests Table :最大的窗格叫 Requests Table,此表格会列出了检索的每一个 HTTP 请求。默认情况下,此表格按时间顺序排序,最早的资源在顶部。点击资源的名称可以显示更多信息。
在这里插入图片描述

Requests Table详情

在这里插入图片描述
1.Headers:是显示 HTTP 请求的 Headers,我们通过这个能看到请求的方式,以及携带的请求参数等。

  • General

    • Request url :实际请求的网址
    • Request Method: 请求方法
    • Status Code :状态码,成功时为 200
  • Response Headers :服务器返回时设置的一些数据,例如服务器更新的cookie数据最新是在这里出现修改

  • Requests Headers :请求体,请求不到数据的原因一般出在这里。反扒也是反扒请求体里面的数据

2.Preview :Preview 是请求结果的预览。一般用来查看请求到的图片,对于抓取图片网站比较给力。

3.Response :Response 是请求返回的结果。一般的内容是整个网站的源代码。如果该请求是异步请求,返回的结果内容一般是 Json 文本数据。此数据与浏览器展示的网页可能不一致,因为浏览器是动态加载的

4.Initiator :请求发起所调用的堆栈

5.Timing :请求与响应时间表

6.Cookies :显示数据包的cookies所有片段信息

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

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

相关文章

「微服务」Saga 模式 如何使用微服务实现业务事务-第二部分

在上一篇文章中,我们看到了实现分布式事务的一些挑战,以及如何使用Event / Choreography方法实现Saga的模式。在本文中,我们将讨论如何通过使用另一种类型的Saga实现(称为Command或Orchestration)来解决一些问题&#…

win10系统请将eNSP相关应用程序添加到windows firewall的允许程序列表,并允许其在公用网络上运行!的解决办法

很多学习网络的小伙伴,在下载安装eNSP后,打开程序跳出:请将eNSP相关应用程序添加到windows firewall的允许程序列表,并允许其在公用网络上运行! 是不是挺闹心的! 其实,原因是很简单,就是win10系统防火墙访…

Linux中安装了openjdk后jps command not found

一、问题场景 在Linux中用yum安装了openjdk-17,也在.bashrc中配置了环境变量JAVA_HOME以及bin目录的PATH。 但是在运行jps命令时依然报错找不到命令 二、原因分析 进入到$JAVA_HOME/bin目录查看,发现只有寥寥几个命令,压根没有jps命令&…

微信小程序发送模板消息-详解【有图】

前言 在发送模板消息之前我们要首先搞清楚微信小程序的逻辑是什么,这只是前端的一个demo实现,建议大家在后端处理,前端具体实现:如下图 1.获取小程序Id和密钥 我们注册完微信小程序后,可以在开发设置中看到以下内容&a…

4.35 构建onnx结构模型-Layernorm

前言 构建onnx方式通常有两种: 1、通过代码转换成onnx结构,比如pytorch —> onnx 2、通过onnx 自定义结点,图,生成onnx结构 本文主要是简单学习和使用两种不同onnx结构, 下面以 Layernorm 结点进行分析 方式 方法…

LAYABOX:2024新年寄语

2024新年寄语 过去的一年,尽管许多行业面临严峻挑战和发展压力,小游戏领域却逆势上扬,年产值首次突破400亿元大关,众多优质小游戏企业收获颇丰。 对此,祝福大家,2024一定更好! 过去的一年&#…

Good Bye 2023

Good Bye 2023 Good Bye 2023 A. 2023 题意:序列a中所有数的乘积应为2023,现在给出序列中的n个数,找到剩下的k个数并输出,报告不可能。 思路:把所有已知的数字乘起来,判断是否整除2023,不够…

掌握C++11标准库(STL):理解STL的核心概念

深入探索C11标准库STL:新特性和优化技巧 一、前言二、容器简介三、迭代器简介四、map与unordered_map(红黑树VS哈希表)4.1、map和unordered_map的差别4.2、优缺点以及适用处4.3、小结 五、总结 一、前言 STL定义了强大的、基于模板的、可复用…

海康visionmaster-渲染控件:渲染控件加载本地图像的方法

描述 环境:VM4.0.0 VS2015 及以上 现象:渲染控件如何显示本地图像? 解答 思路:在 2.3.1 中,可以通过绑定流程或者模块来显示图像和渲染效果。因此,第一步, 可以使用在 VM 软件平台中给图像源模…

【网络面试(1)】浏览器如何实现生成HTTP消息

我们经常会使用浏览器访问各种网站,获取各种信息,帮助解决工作生活中的问题。那你知道,浏览器是怎么帮助我们实现对web服务器的访问,并返回给我们想要的信息呢? 1. 浏览器生成HTTP消息 我们平时使用的浏览器有很多种&…

LeetCode每日一题.04(不同路径)

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1…

Redis(认识NoSQL,认识redis,安装redis,redis桌面客户端,redis常见命令,redis的Java客户端)

文章目录 Redis快速入门1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Redis桌面客户端…

【Linux操作系统】探秘Linux奥秘:文件系统的管理与使用

🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS &…

Vue(三):Vue 生命周期与工程化开发

2023 的最后一篇博客,祝大家元旦快乐,新的一年一起共勉! 06. Vue 生命周期 6.1 基本介绍 生命周期就是一个 Vue 示例从 创建 到 销毁 的整个过程,创建、挂载、更新、销毁 有一些请求是必须在某个阶段完成之后或者某个阶段之前执行…

C++ 递归函数 详细解析——C++日常学习随笔

1. 递归函数 1.1 递归函数的定义 递归函数:即在函数体中出现调用自身的函数,即函数Func(Type a,……)直接或间接调用函数本身; 递归函数:在数学上,关于递归函数的定义如下:对于某一函数f(x),其…

多维时序 | MATLAB实现SSA-CNN-GRU-SAM-Attention麻雀算法优化卷积网络结合门控循环单元网络融合空间注意力机制多变量时间序列预测

多维时序 | MATLAB实现SSA-CNN-GRU-SAM-Attention麻雀算法优化卷积网络结合门控循环单元网络融合空间注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-CNN-GRU-SAM-Attention麻雀算法优化卷积网络结合门控循环单元网络融合空间注意力机制多变量时间序列预测预测效…

计算机网络:知识回顾

0 本节主要内容 问题描述 解决思路 1 问题描述 通过一个应用场景来回顾计算机网络涉及到的协议(所有层)。如下图所示场景: 学生Bob将笔记本电脑用一根以太网电缆连接到学校的以太网交换机;交换机又与学校的路由器相连&#xf…

Windows10系统的音频不可用,使用疑难解答后提示【 一个或多个音频服务未运行】

一、问题描述 打开电脑,发现电脑右下角的音频图标显示为X(即不可用,无法播放声音),使用音频自带的【声音问题疑难解答】(选中音频图标,点击鼠标右键,然后选择“声音问题疑难解答(T)”…

【Java进阶篇】 ClassNotFoundException和NoClassDefFoundError的区别是什么?

ClassNotFoundException和NoClassDefFoundError的区别 ✔️典型解析✔️扩展知识仓✔️NoSuchMethodError ✔️典型解析 ClassNotFoundException是一个受检异常 (checked exception) 。他通常在运行时,在类加载段尝试加载类的过程中,找不到类的定义时触发…

每个AI/ML工程师必须了解的人工智能框架和工具

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…