python网络爬虫指南一:网页基础(html/css/JavaScript)、网络请求(urllib/requests)、数据解析(XPath/BeautifulSoup)

文章目录

    • 一、爬虫开发基础
      • 1.1浏览器工作原理
      • 1.2 HTTP 概述
        • 1.2.1 HTTP简介
        • 1.2.2 五层网络模型
        • 1.2.3 HTTP组件系统
        • 1.2.4 HTTP报文
      • 1.3 爬虫工作原理
      • 1.4 HTML基础
        • 1.4.1 HTML简介
        • 1.4.2 HTML文档结构
        • 1.4.3 CSS层叠样式表
          • 1.4.3.1 CSS的作用
          • 1.4.3.2 CSS选择器
          • 1.4.3.3 CSS文本和字体样式
        • 1.4.4 HTML元素和标签
      • 1.5 JavaScript
        • 1.5.1 简介
        • 1.5.2 基本语法
        • 1.5.3 基本操作
        • 1.5.4 事件处理
        • 1.5.5 前端框架和库
    • 二、网络请求
      • 2.1 urllib(Python内置模块)介绍
      • 2.2 request介绍
      • 2.3 发送请求
        • 2.3.1 发送GET请求
        • 2.3.2 `response` 对象(requests)
        • 2.3.3 含请求参数的GET请求(解析 URL)
          • 2.3.3.1 urllib编码解码
          • 2.3.3.2 request自动编码解码
        • 2.3.4 发送POST请求
          • 2.3.4.1 GET请求和POST请求的区别
          • 2.3.4.2 使用requests发送POST请求
          • 2.3.4.3 使用GET请求下载百度logo和百度首页
      • 2.4 使用请求头
    • 三、数据解析
      • 3.1 XPath解析
        • 3.1.1 XML文档的树状结构
        • 3.1.2 XPath路径表达式
        • 3.1.3 Xpath解析起点小说月票榜
      • 3.2 BeautifulSoup解析
        • 3.2.1 BeautifulSoup解析器
        • 3.2.2 Beautiful Soup 提取标签和内容
        • 3.2.3 Beautiful Soup解析起点小说月票榜
        • 3.2.3 CSS 选择器与 Beautiful Soup
      • 3.3 正则表达式解析(略)
      • 3.4 PyQuery解析(略)

本文为马士兵教育《Python网络爬虫进阶指南》课程笔记,部分内容由AI生成。课件:第一章,第二章,第三章,第四章,第五章,第六章,第七章,第九章,第十章。

一、爬虫开发基础

1.1浏览器工作原理

HTTP官方文档

  浏览器是我们在日常网络活动中经常使用的工具,它允许我们浏览网页、查找信息、与网站进行交互等。浏览器的工作原理涉及多个组件和过程,如下所示:

  • 用户界面(User Interface)
    这是浏览器的外观,包括地址栏、后退/前进按钮、书签、标签页等。用户界面提供了与浏览器交互的方式。
  • 浏览器引擎(Browser Engine)
    这是浏览器的核心部分,负责解释和执行用户界面和呈现引擎之间的命令。它处理用户输入,将其转化为请求,并与呈现引擎协调,以展示所需的内容。
  • 呈现引擎(Rendering Engine)
    这是浏览器的另一个核心部分,负责显示请求的内容。它将HTML和CSS解释成可视化的页面。不同的浏览器使用不同的呈现引擎,例如Chrome使用Blink引擎,Firefox使用Gecko引擎。
  • 网络组件(Networking)
    这部分负责网络通信,从互联网下载页面和资源。浏览器通过HTTP请求从服务器获取HTML、CSS、JavaScript、图片等文件。
  • JavaScript解释器(JavaScript Interpreter)
    如果页面中有JavaScript代码,浏览器会使用JavaScript解释器来解析和执行这些代码,实现交互性和动态效果。
  • UI后端(UI Backend)
    此组件绘制浏览器的用户界面元素,如文本框和按钮。它使用操作系统的用户界面方法来实现。
  • 数据存储(Data Persistence)
    浏览器需要存储各种数据,包括cookies、缓存和本地存储。这些数据允许网站“记住”用户,并在不同页面之间保留状态。

现在,结合下图来详细了解浏览器的工作原理:

python网络爬虫指南一:网页基础(html/css/JavaScript)、网络请求(urllib/requests)、数据解析(XPath/BeautifulSoup)_第1张图片

  1. 用户输入网址:用户在客户端电脑的浏览器地址栏中输入网址(URL),例如上图输入了https://www.baidu.com/,按下回车。

  2. 客户端向服务器发送请求

    • DNS解析:浏览器向域名系统(DNS)发送请求(request),将网址转换为IP地址。这是因为计算机使用IP地址来定位服务器。
    • 建立连接:浏览器与服务器之间建立网络连接。这通常是通过HTTP请求完成的,即浏览器向服务器发送请求。
  3. 服务器处理请求,做出响应:服务器收到浏览器的请求后,会处理请求并做出响应(response),返回相应的数据,通常是HTML、CSS、JavaScript和其他资源。
    当您打开百度主页并按下Ctrl+U时(或者右键单击,选择查看源码),您将看到网页的源代码,其中包含了构成百度主页的HTML、CSS和JavaScript等内容。
    python网络爬虫指南一:网页基础(html/css/JavaScript)、网络请求(urllib/requests)、数据解析(XPath/BeautifulSoup)_第2张图片
    在这里插入图片描述

以下是您可能会在源码中看到的内容的解释:

  • HTML 结构
    HTML 代码定义了页面的整体结构和布局,使用标签如 , , ,

    ,

    等来创建网页的各个元素,所以您可以看到页面的分区、导航栏、页眉、页脚等元素。

  • 样式和样式表
    在源码中,您可能会看到