iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
自我挑戰組

30天認識爬蟲系列 第 10

[Day10] 解析HTML結構

  • 分享至 

  • xImage
  •  

今天是第十天,在前幾天的學習中,我們提到了爬蟲的基本原理,而今天要深入探討如何解析HTML結構,這是爬蟲抓取網頁資料的核心技術之一

HTML的基本結構
一個典型的HTML文檔由各種標籤組成,這些標籤可以分為元素、屬性和內容三部分。

<h1 class="title">我的第一篇文章</h1>
<p>這是一段描述內容的段落。</p>
<h1>是標題元素,class="title"是它的屬性,而“我的第一篇文章”是它的內容。
<p>標籤則表示一段文字。

解析HTML結構最常用的工具有BeautifulSoup和lxml。這兩者可以讓我們輕鬆地從HTML中提取出需要的資料。

使用Beautiful Soup解析HTML

from bs4 import BeautifulSoup

# 假設這是我們爬取的HTML內容
html_content = """
<html>
<head><title>示例頁面</title></head>
<body>
<h1 class="title">我的第一篇文章</h1>
<p>這是一段描述內容的段落。</p>
</body>
</html>
"""

# 解析HTML內容
soup = BeautifulSoup(html_content, 'html.parser')

# 提取標題
title = soup.title.string
print(f'標題是:{title}')

# 提取h1內容
h1_content = soup.find('h1').text
print(f'h1內容是:{h1_content}')

在這段代碼中,我們首先引入了BeautifulSoup庫,然後將HTML內容解析為一個soup對象。接著我們可以使用soup.title.string來提取標題,或者使用soup.find('h1')來找到第一個h1元素,然後取出其文本內容。

使用CSS選擇器
BeautifulSoup還支持CSS選擇器,這讓我們可以用更簡潔的方式選取元素。例如:

# 使用CSS選擇器提取h1
h1_content = soup.select_one('h1.title').text
print(f'使用CSS選擇器提取的h1內容是:{h1_content}')

這樣的寫法讓我們可以直觀地根據標籤和類名來選擇元素,特別是在HTML結構較複雜的情況下非常有用。

總結:解析HTML結構是爬蟲過程中至關重要的一環。掌握如何使用BeautifulSoup等工具提取需要的資料,可以大大提高我們的爬蟲效率。


上一篇
[Day9] 網路請求與伺服器回應原理
下一篇
[Day11] 爬蟲中的錯誤處理與排除故障
系列文
30天認識爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言