CodeGym /课程 /Frontend SELF ZH /对话标记元素

对话标记元素

Frontend SELF ZH
第 10 级 , 课程 4
可用

1. 网页抓取的 CSS 基本概念

想要成功进行网页抓取,了解页面上的 HTML 结构和 CSS 类是关键因素。理解页面元素如何通过 CSS 被样式化和结构化,可以更准确地选择所需数据并提取。我们来看看如何将 CSS 连接到 HTML,使用选择器,以及 styleclassidname 属性如何帮助处理网页结构来抓取数据。

CSS 负责网页的样式化,但对于网站抓取的目的来说,我们可以将 CSS 看作是理解结构和选择元素的工具。让我们看看网页抓取中一些重要的 CSS 概念:

  • 选择器 — 是指向具体 HTML 元素的规则。使用它们可以精确地识别所需的数据。
  • 属性 classidname — 它们是帮助突出和区分元素的唯一标识符。对于抓取来说,它们特别有用,因为它们帮助隔离所需的元素,从而简化数据提取。

2. 将 CSS 连接到 HTML 文档

可以通过多种方式将 CSS 连接到 HTML。了解这些方法对于浏览元素及确定其样式和类是很重要的,因为这将帮助隔离目标数据。

外部文件

CSS 通常作为外部文件连接,可以在 HTML 文档的 <head> 部分通过 <link> 标签看到。外部 CSS 文件定义了整页的样式,包括标识符和类,这使得抓取时的导航更容易。

HTML

<head>
    <link rel="stylesheet" href="styles.css">
</head>
    

内部样式

有时样式也可以通过 <style> 标签在页面内定义。内部样式可以在页面的 <head> 部分找到,并可作为理解类和标识符的提示,以选择所需元素。

HTML

<head>
<style>
  .price {
    color: red;
  }
</style>
</head>

内联样式(属性 style

内联样式直接存在于 HTML 标签中,并仅影响特定元素。style 属性通常也包含一些独特的属性,可以用于识别目标数据。

HTML

<p style="color: red; font-size: 18px;">具有内联样式的文本</p>
HTML

<p style="color: red; font-size: 18px;">具有内联样式的文本</p>

3. CSS 中的选择器

CSS 中的选择器用于将样式应用于元素,但在网页抓取中,它们的主要用途是 精确选择包含所需数据的元素。让我们看看一些网页抓取中可以使用的主要选择器类型。

主要选择器类型

标签选择器: 这种选择器选择所有具有特定标签的元素(比如 <p><div>)。在网页抓取中,标签选择器对于从可能包含文本、图片和其他信息的标签中提取信息很有用。

CSS

p {
  color: blue;
}
    

类选择器: 这种选择器选择具有特定 class 属性值的元素。类前面用点号 (.) 标识。在网页抓取中,类特别有用,因为它们可以识别具有相同样式的元素,比如商品清单。

CSS

.price {
    color: red;
  }
CSS

.price {
    color: red;
  }
HTML

<p class="price">价格: $99</p>

标识符选择器 (ID): 这种选择器选择具有唯一 id 属性的元素。ID 用符号 # 标识。在网页抓取中,id 特别有用来选择唯一元素,比如页面上的标题或按钮。

CSS

#product-title {
  font-size: 24px;
}
    
HTML

<h1 id="product-title">产品名称</h1>
    

属性选择器: 这些选择器根据特定属性(如 nametype 等)选择元素。在网页抓取中,属性选择器对于选择表单元素或特定字段(比如选择具有特定 name 的字段)很有用。

CSS

input[name="email"] {
  border: 2px solid blue;
}
    

组合选择器: 这些选择器允许通过组合多个条件更精确地选择元素。例如,.product-list .price 仅选择 product-list 容器内的产品价格。

关于属性和组合选择器的更多详情将在后续讲座中详细介绍。

4. styleclassidname 属性

style 属性

style 属性用于为元素添加内联样式,可以作为难以通过其他属性识别的元素的一个显著标志。在网页抓取中,它可以用作搜索页面中特定元素的另一个过滤器。

HTML

<p style="color: red; font-size: 18px;">这段文本由内联样式突出显示</p>
    

class 属性

class 属性标识具有相同样式的一组元素,比如商品、价格或描述。在抓取过程中,class 帮助选择具有相同可视结构的一组元素,从而简化大规模数据提取。

HTML

<p class="price">价格: $99</p>
<p class="price">价格: $89</p>
    
CSS

.price {
  color: red;
}
    

id 属性

id 属性对每个元素都是唯一的,这使得其在提取唯一数据时非常有价值。例如,页面上商品的标题可能具有唯一 id,这个标识符可以被用来精确选择这个标题。

HTML

<h1 id="main-title">产品标题</h1>
    
CSS

#main-title {
  font-size: 30px;
}
    

name 属性

name 属性常用于表单元素,可以用于精确选择输入字段,比如电子邮件或电话号码字段。在网页抓取中,name 在提取表单数据时很有用。

HTML

<input type="text" name="username" placeholder="输入用户名">
    
CSS

input[name="username"] {
  border: 1px solid #333;
}
    

5. 使用 CSS 和 HTML 的页面示例

下面是一个 HTML 文档示例,其中使用了各种选择器和属性,以突出显示和结构化可能对网页抓取有用的元素。

HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>网页抓取示例页面</title>
  <link rel="stylesheet" href="styles.css">
  <style>
    .price {
      color: red;
      font-weight: bold;
    }
  </style>
</head>
<body>
  <h1 id="main-title">本周产品</h1>
  <p class="price">价格: $99</p>
  <p class="description">这是一款具有出色特性的独特产品。</p>
  
  <form action="/submit" method="post">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">
    
    <label for="email">电子邮件:</label>
    <input type="email" id="email" name="email">
    
    <button type="submit">提交</button>
  </form>
</body>
</html>
    
HTML

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <title>网页抓取示例页面</title>
      <link rel="stylesheet" href="styles.css">
      <style>
        .price {
          color: red;
          font-weight: bold;
        }
      </style>
    </head>
    <body>
      <h1 id="main-title">本周产品</h1>
      <p class="price">价格: $99</p>
      <p class="description">这是一款具有出色特性的独特产品。</p>
      
      <form action="/submit" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username">
        
        <label for="email">电子邮件:</label>
        <input type="email" id="email" name="email">
        
        <button type="submit">提交</button>
      </form>
    </body>
    </html>
        
CSS

#main-title {
  font-size: 24px;
  color: green;
}

input[name="username"] {
  border: 1px solid #333;
  padding: 5px;
}
    
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION