CodeGym /课程 /Python SELF ZH /Google Chrome DevTools

Google Chrome DevTools

Python SELF ZH
第 30 级 , 课程 4
可用

1. 打开 DevTools

Google Chrome DevTools 是 Chrome 浏览器中内置的一组开发工具,能让你查看和分析网页。对于网页抓取工具来说,DevTools 是重要的帮手,因为它可以更深入地了解网页结构,确定选择器,分析动态内容和网络请求。在这篇文章里,我们会看看 DevTools 如何帮助网页抓取工具收集数据并提高抓取效率。

打开 Chrome DevTools 的方式有:

  • F12Ctrl+Shift+I (Windows) 或 Cmd+Opt+I (Mac)。
  • 右键点击网页空白处,然后选择检查Inspect
工具会打开一个新面板,通常位于浏览器窗口的下方或右侧。DevTools 面板有多个标签页,每个标签页都针对网页抓取工具所需完成的特定任务而设计。

对于网页抓取工具来说,以下 DevTools 标签页特别有用:Elements, Console, Network, SourcesApplication

2. Elements 标签页

Elements 标签页:学习 HTML 和 CSS

Elements 标签页是用来分析网页结构和选择元素的主要工具。你可以在这里查看、编辑和复制页面的 HTML 和 CSS 结构。

Elements 标签页的主要功能:

  • 确定选择器. 点击面板左上角的箭头图标,选中页面上的任意元素。DevTools 会打开对应的 HTML 代码。这对发现可在 CSS 或 Xpath 中用的 id, class 等属性非常有用。
  • 实时编辑 HTML 和 CSS. 你可以修改元素的 HTML 和 CSS,进行视觉测试。这有助于理解页面的变化效果。例如,你可以隐藏特定元素或改变颜色,来更好地理解哪些页面部分是你需要的。
  • 复制选择器. 右键点击元素,选择「复制」并复制它的 CSS 选择器XPath,这对网页抓取来说特别有用。

示例: 如果你需要选择标题文本 <h1>,只需点击它并复制其选择器,然后用于代码中提取数据。

3. Console 标签页

Console 标签页:操作动态内容的 JavaScript

Console 让你可以在网页上直接输入和执行 JavaScript 代码。这对操作动态内容、分析控制元素的 JavaScript 特别实用。

Console 对网页抓取工具的用途:

  • 用 JavaScript 提取数据. 你可以使用类似 document.querySelector 的简单命令来测试选择元素,并确保选择器正确运行。
  • 执行代码与元素交互. 举例来说,如果你需要“点击”一个按钮或“加载”内容部分,Console 允许你执行代码以测试元素对事件的反应。
  • 寻找错误. 如果抓取是通过自动化完成的,Console 可以显示与 JavaScript 或网络请求相关的错误,帮助了解为什么某些元素未加载或未显示。

示例: 如果需要测试选择类名为 load-more 的按钮,可以在 Console 中输入 document.querySelector('.load-more').click() 并查看按钮是否响应命令。

4. Network 标签页

Network 标签页:分析网络请求

Network 是分析页面进行的网络请求的重要标签页。很多网站通过异步请求(比如 AJAX)加载数据,这会让抓取变得更复杂。Network 允许你追踪所有网络请求,复制它们并分析服务器的响应。

Network 标签页的主要功能:

  • 追踪 AJAX 请求. 在页面加载时,你可以看到所有请求及其响应。如果数据是动态加载的,这特别有用。你可以追踪返回所需数据的请求,然后在代码中复用这些请求直接获取数据。
  • 复制请求. 右键点击一个请求,可以将其复制为 cURLfetch,方便你在代码中复用这些请求获取数据。
  • 分析请求参数. Network 会显示请求头、参数和 cookies,这些数据有助于了解服务器需要哪些参数才能正确响应。比如,很多网站会用身份验证 token 保护数据,通过分析请求头,你可以理解如何绕过这些限制。

示例: 如果数据是通过 AJAX 动态加载的,你可以在 Network 中找到对应的请求,查看其 URL 和响应,然后在代码中复用该请求直接获取数据。

5. Sources 标签页

Sources 标签页:研究 JavaScript 和动态内容

Sources 是一个可以研究页面 JavaScript 文件、CSS、图片等资源的标签页。网页抓取工具可以利用它来分析网站逻辑和处理动态内容。

Sources 标签页的主要功能:

  • 寻找 JavaScript 文件. 在很多页面中,数据或功能是通过 JavaScript 加载的。在 Sources 中,你可以找到并打开 JavaScript 文件,这些文件能展示数据加载和网页逻辑。
  • 设置断点. 这让你可以在特定代码行暂停执行,查看数据是如何加载的以及元素间如何交互。对于分析使用复杂 JavaScript 的页面特别有用。
  • 查看变量值. 你可以跟踪变量的变化,更好地了解网站逻辑。如果内容通过复杂的 JavaScript 函数加载,这很有帮助。

6. Application 标签页

Application 标签页:处理 cookies 和 Local Storage

Application 是一个可以研究 cookies、Local Storage 和其他客户端存储数据的标签页。对于需要身份验证或追踪用户行为的网站,这些数据可能非常有用。

Application 标签页对网页抓取工具的主要功能:

  • 分析 cookies. 很多网站用 cookies 来做身份验证或追踪用户。在分析需要认证的请求时,Application 标签页可以让你看到需要哪些 cookies 才能访问内容。
  • 研究 Local Storage 和 Session Storage. 这些存储通常用来在客户端保存数据。如果网站从 Local Storage 加载数据或设置,你可以提取这些信息用于抓取代码。
  • 处理身份验证 token. 有些网站将 token 存储在 Local Storage 或 cookies 中。只要知道 token 和其刷新机制,就可以通过 API 或 AJAX 请求获取数据。

示例: 如果网站需要身份验证,Application 标签页能提取必要的 cookies 或 token,用于请求数据。

7. 实践技巧

使用 DevTools 进行网页抓取的实用技巧

  • 在 Network 中寻找数据. 如果内容是异步加载的,在 Network 中找到相关请求,研究其 URL、参数和 headers。
  • 用 Console 测试选择器. 在实际抓取代码中使用选择器前,可以用 Console 中的命令测试,比如 document.querySelectordocument.querySelectorAll
  • 复制 fetch 请求用于 API 获取. 如果网站使用 API,Network 可以让你复制 fetch 请求,测试它在脚本中的使用,以便直接获取数据而不依赖 HTML 结构。
  • 寻找控制内容的脚本. 在 Sources 中可以找到控制动态内容的 JavaScript 文件,理解其工作原理后,调整逻辑来抓取数据。
  • 研究身份验证 token 和 cookies. 某些网站通过 cookies 或 token 保护数据,因此保存这些数据并在请求中使用是很重要的。
1
调查/小测验
CSS基础第 30 级,课程 4
不可用
CSS基础
CSS基础
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION