Python - การอ่านหน้า HTML

ห้องสมุดที่เรียกว่า beautifulsoup เมื่อใช้ไลบรารีนี้เราสามารถค้นหาค่าของแท็ก html และรับข้อมูลเฉพาะเช่นชื่อของเพจและรายการส่วนหัวในเพจ

ติดตั้ง Beautifulsoup

ใช้ Anaconda package manager เพื่อติดตั้งแพ็กเกจที่ต้องการและแพ็กเกจที่ขึ้นต่อกัน

conda install Beaustifulsoap

การอ่านไฟล์ HTML

ในตัวอย่างด้านล่างเราขอ url เพื่อโหลดเข้าสู่สภาพแวดล้อม python จากนั้นใช้พารามิเตอร์ตัวแยกวิเคราะห์ html เพื่ออ่านไฟล์ html ทั้งหมด ต่อไปเราจะพิมพ์สองสามบรรทัดแรกของหน้า html

import urllib2
from bs4 import BeautifulSoup

# Fetch the html file
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()

# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')

# Format the parsed html file
strhtm = soup.prettify()

# Print the first few characters
print (strhtm[:225])

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

<!DOCTYPE html>
<!--[if IE 8]><html class="ie ie8"> <![endif]-->
<!--[if IE 9]><html class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
 <!--<![endif]-->
 <head>
  <!-- Basic -->
  <meta charset="utf-8"/>
  <title>

กำลังแยกค่าแท็ก

เราสามารถดึงค่าแท็กจากตัวอย่างแรกของแท็กโดยใช้โค้ดต่อไปนี้

import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()

soup = BeautifulSoup(html_doc, 'html.parser')

print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(soup.b.string)

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

Python Overview
Python Overview
None
Python is Interpreted

การแยกแท็กทั้งหมด

เราสามารถดึงค่าแท็กจากอินสแตนซ์ทั้งหมดของแท็กโดยใช้โค้ดต่อไปนี้

import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')

for x in soup.find_all('b'): print(x.string)

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

Python is Interpreted
Python is Interactive
Python is Object-Oriented
Python is a Beginner's Language
Easy-to-learn
Easy-to-read
Easy-to-maintain
A broad standard library
Interactive Mode
Portable
Extendable
Databases
GUI Programming
Scalable