การสร้าง Web Scraper ด้วย BeautifulSoup – คู่มือฉบับสมบูรณ์
เผยแพร่แล้ว: 2024-03-19สำหรับผู้ที่ต้องการควบคุมพลังของข้อมูลเว็บ BeautifulSoup มีความโดดเด่นในฐานะเครื่องมือที่ทรงพลังและใช้งานง่าย ไลบรารี Python นี้ออกแบบมาเพื่อวัตถุประสงค์ในการขูดเว็บ ทำให้คุณสามารถดึงข้อมูลเฉพาะจากหน้าเว็บได้อย่างง่ายดาย คู่มือนี้จะแนะนำคุณตลอดขั้นตอนการสร้าง web scraper โดยใช้ BeautifulSoup, ดำเนินการขั้นตอนการขูดเว็บด้วย beautifulsoup ตั้งแต่การตั้งค่าสภาพแวดล้อมไปจนถึงการแยกวิเคราะห์และแยกข้อมูลที่คุณต้องการ
รู้เบื้องต้นเกี่ยวกับ Web Scraping ด้วย BeautifulSoup
การขูดเว็บเป็นกระบวนการรวบรวมข้อมูลจากเวิลด์ไวด์เว็บโดยทางโปรแกรม เป็นเทคนิคอันทรงคุณค่าที่ใช้ในการขุดข้อมูล การรวบรวมข้อมูล และงานระบบอัตโนมัติ BeautifulSoup ซึ่งจับคู่กับไลบรารีคำขอของ Python มอบแนวทางที่ตรงไปตรงมาในการขูดเว็บ ทำให้โปรแกรมเมอร์ทุกระดับสามารถเข้าถึงได้ Web Scrape ด้วย BeautifulSoup เกี่ยวข้องกับข้อกำหนดเบื้องต้นหลายประการ
ข้อกำหนดเบื้องต้น
ก่อนที่จะเริ่มต้นใช้งาน BeautifulSoup ตรวจสอบให้แน่ใจว่าคุณได้ครอบคลุมข้อกำหนดเบื้องต้นต่อไปนี้:
- ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม Python
- Python ติดตั้งอยู่ในระบบของคุณ
- ความคุ้นเคยกับ HTML และโครงสร้างของหน้าเว็บ
การตั้งค่าสภาพแวดล้อมของคุณ
- ติดตั้ง Python : ตรวจสอบให้แน่ใจว่าติดตั้ง Python บนระบบของคุณแล้ว แนะนำให้ใช้ Python 3 สำหรับคุณสมบัติและการรองรับที่ได้รับการปรับปรุง
- ติดตั้ง BeautifulSoup และ Requests : เปิดบรรทัดคำสั่งหรือเทอร์มินัลของคุณแล้วติดตั้งไลบรารีที่จำเป็นโดยใช้ pip ซึ่งเป็นตัวติดตั้งแพ็คเกจของ Python รันคำสั่งต่อไปนี้:
pip ติดตั้ง beautifulsoup4
คำขอติดตั้ง pip
การสร้าง Web Scraper เครื่องแรกของคุณ
การสร้างเว็บสแครปเปอร์ครั้งแรกของคุณด้วย BeautifulSoup ถือเป็นก้าวที่น่าตื่นเต้นเข้าสู่โลกแห่งการดึงข้อมูลจากเว็บ คู่มือนี้จะแนะนำคุณเกี่ยวกับพื้นฐานของการตั้งค่าสแครปเปอร์อย่างง่ายโดยใช้ Python และ BeautifulSoup เพื่อดึงและแยกวิเคราะห์เนื้อหาเว็บอย่างมีประสิทธิภาพ เราจะคัดลอกคำพูดจาก “http://quotes.toscrape.com” ซึ่งเป็นเว็บไซต์ที่ออกแบบมาเพื่อฝึกทักษะการขูดเว็บ
ขั้นตอนที่ 1: การตั้งค่าสภาพแวดล้อม Python ของคุณ
ตรวจสอบให้แน่ใจว่าติดตั้ง Python บนคอมพิวเตอร์ของคุณแล้ว คุณจะต้องมีไลบรารีหลักสองไลบรารี: คำขอสำหรับสร้างคำขอ HTTP เพื่อรับหน้าเว็บ และ beautifulsoup4 สำหรับการแยกวิเคราะห์เนื้อหา HTML
หากคุณยังไม่ได้ติดตั้งไลบรารีเหล่านี้ คุณสามารถทำได้โดยใช้ pip ซึ่งเป็นโปรแกรมติดตั้งแพ็คเกจของ Python เปิดเทอร์มินัลหรือพรอมต์คำสั่งของคุณแล้วดำเนินการคำสั่งต่อไปนี้:
pip ติดตั้ง beautifulsoup4
คำขอติดตั้ง pip
ขั้นตอนที่ 2: ดึงข้อมูลเว็บเพจ
หากต้องการคัดลอกเว็บด้วย BeautifulSoup ให้เริ่มต้นด้วยการเขียนสคริปต์ Python เพื่อดึงเนื้อหา HTML ของหน้าเว็บที่คุณต้องการคัดลอก ในกรณีนี้ เราจะดึงคำพูดจาก “http://quotes.toscrape.com”
คำขอนำเข้า
# URL ของเว็บไซต์ที่คุณต้องการขูด
url = 'http://quotes.toscrape.com'
# ใช้ไลบรารีคำขอเพื่อรับเนื้อหาของเว็บไซต์
การตอบสนอง = request.get (url)
#รับรองว่าคำขอสำเร็จ
ถ้า response.status_code == 200:
พิมพ์ (“ดึงข้อมูลหน้าเว็บสำเร็จ!”)
อื่น:
print("ไม่สามารถดึงข้อมูลหน้าเว็บได้")
ขั้นตอนที่ 3: แยกวิเคราะห์เนื้อหา HTML ด้วย BeautifulSoup
เมื่อคุณดึงข้อมูลหน้าเว็บแล้ว ขั้นตอนต่อไปคือการแยกวิเคราะห์เนื้อหา HTML BeautifulSoup ทำให้งานนี้ตรงไปตรงมา สร้างออบเจ็กต์ BeautifulSoup และใช้เพื่อแยกวิเคราะห์ข้อความตอบกลับ
จาก bs4 นำเข้า BeautifulSoup
# สร้างวัตถุ BeautifulSoup และระบุ parser
ซุป = BeautifulSoup (response.text, 'html.parser')
# พิมพ์ HTML ที่สวยงามเพื่อดูโครงสร้าง
พิมพ์(soup.prettify())
ขั้นตอนที่ 4: แยกข้อมูลจาก HTML
เมื่อคุณแยกวิเคราะห์ HTML แล้ว คุณสามารถเริ่มแยกข้อมูลที่คุณสนใจได้ เรามาแยกเครื่องหมายคำพูดทั้งหมดออกจากหน้ากัน
# ค้นหาองค์ประกอบ <span> ทั้งหมดที่มีคลาส 'ข้อความ' และวนซ้ำองค์ประกอบเหล่านั้น
คำพูด =ซุป.find_all('span', class_='text')
สำหรับคำพูดในเครื่องหมายคำพูด:
# พิมพ์เนื้อหาข้อความของแต่ละ <span>
พิมพ์ (quote.text)
ตัวอย่างนี้จะค้นหาองค์ประกอบ <span> ทั้งหมดที่มีข้อความคลาสซึ่งมีเครื่องหมายคำพูดบนหน้า และพิมพ์เนื้อหาข้อความ
ขั้นตอนที่ 5: ก้าวต่อไป
คุณยังสามารถดึงข้อมูลอื่น ๆ เช่นผู้เขียนคำพูด:
# ค้นหาองค์ประกอบ <small> ทั้งหมดด้วยคลาส 'author'
ผู้เขียน =ซุป.find_all('เล็ก', class_='ผู้เขียน')
สำหรับผู้เขียนในผู้เขียน:
# พิมพ์เนื้อหาข้อความของ <small> แต่ละรายการซึ่งมีชื่อผู้เขียน
พิมพ์ (ผู้เขียนข้อความ)
การดำเนินการนี้จะพิมพ์ชื่อของผู้แต่งแต่ละคนที่สอดคล้องกับคำพูดที่คุณดึงออกมา
แนวทางปฏิบัติที่ดีที่สุดและข้อควรพิจารณา
- เคารพ Robots.txt : ตรวจสอบไฟล์ robots.txt ของเว็บไซต์เสมอ (เช่น http://quotes.toscrape.com/robots.txt) ก่อนที่จะทำการคัดลอก มันบอกคุณถึงนโยบายการขูดของเว็บไซต์
- จัดการข้อยกเว้น : ตรวจสอบให้แน่ใจว่าโค้ดของคุณจัดการข้อผิดพลาดของเครือข่ายหรือการตอบกลับที่ไม่ถูกต้องได้อย่างงดงาม
- การจำกัดอัตรา : คำนึงถึงจำนวนคำขอที่คุณส่งไปยังเว็บไซต์เพื่อหลีกเลี่ยงการถูกบล็อก
- ข้อพิจารณาทางกฎหมาย : ตระหนักถึงผลกระทบทางกฎหมายของการขูดเว็บ และให้แน่ใจว่ากิจกรรมของคุณเป็นไปตามกฎหมายที่เกี่ยวข้องและข้อกำหนดในการให้บริการของเว็บไซต์
บทสรุป
BeautifulSoup ด้วยความเรียบง่ายและทรงพลัง เปิดโลกแห่งความเป็นไปได้ในการดึงข้อมูลจากเว็บ ไม่ว่าคุณจะรวบรวมข้อมูลเพื่อการวิเคราะห์ ติดตามเว็บไซต์เพื่อดูการเปลี่ยนแปลง หรือทำงานอัตโนมัติ การขูดเว็บด้วย BeautifulSoup ถือเป็นทักษะอันล้ำค่าในชุดเครื่องมือการเขียนโปรแกรมของคุณ เมื่อคุณเริ่มต้นการเดินทางในการขูดเว็บ อย่าลืมที่จะขูดอย่างมีความรับผิดชอบและมีจริยธรรม โดยเคารพเว็บไซต์ที่คุณโต้ตอบด้วย มีความสุขกับการขูด!