การ Parse HTML ด้วย BeautifulSoup
ในแบบฝึกหัดนี้ คุณจะได้เรียนรู้วิธีใช้แพ็กเกจ BeautifulSoup เพื่อ parse, prettify และ ดึงข้อมูล จาก HTML โดยจะทำการ scrape ข้อมูลจากหน้าเว็บของ Guido van Rossum ผู้สร้างภาษา Python และดำรงตำแหน่ง Benevolent Dictator for Life ในแบบฝึกหัดถัดไป คุณจะได้จัดรูปแบบ HTML แล้วดึงข้อความและไฮเปอร์ลิงก์ออกมา
URL ที่ใช้คือ url = 'https://www.python.org/~guido/'
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าข้อมูลด้วย Python ระดับกลาง
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
BeautifulSoupจากแพ็กเกจbs4 - กำหนด URL ที่ต้องการให้กับตัวแปร
url - ส่งคำขอไปยัง URL และรับการตอบกลับด้วยฟังก์ชันเดียวคือ
requests.get()แล้วเก็บผลลัพธ์ไว้ในตัวแปรr - ใช้แอตทริบิวต์
textของออบเจกต์rเพื่อดึง HTML ของหน้าเว็บในรูปแบบ string แล้วเก็บผลลัพธ์ไว้ในตัวแปรhtml_doc - สร้างออบเจกต์ BeautifulSoup ชื่อ
soupจาก HTML ที่ได้ โดยใช้ฟังก์ชันBeautifulSoup() - เรียกใช้เมธอด
prettify()กับsoupแล้วเก็บผลลัพธ์ไว้ในตัวแปรpretty_soup - กด ส่งคำตอบ เพื่อพิมพ์ HTML ที่จัดรูปแบบแล้วออกมาใน shell
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import packages
import requests
from ____ import ____
# Specify url: url
# Package the request, send the request and catch the response: r
# Extracts the response as html: html_doc
# Create a BeautifulSoup object from the HTML: soup
# Prettify the BeautifulSoup object: pretty_soup
# Print the response
print(pretty_soup)