Python - Đọc các trang HTML

thư viện được gọi là beautifulsoup. Sử dụng thư viện này, chúng ta có thể tìm kiếm các giá trị của các thẻ html và lấy dữ liệu cụ thể như tiêu đề của trang và danh sách các tiêu đề trong trang.

Cài đặt Beautifulsoup

Sử dụng trình quản lý gói Anaconda để cài đặt gói yêu cầu và các gói phụ thuộc của nó.

conda install Beaustifulsoap

Đọc tệp HTML

Trong ví dụ dưới đây, chúng tôi yêu cầu một url được tải vào môi trường python. Sau đó, sử dụng tham số trình phân tích cú pháp html để đọc toàn bộ tệp html. Tiếp theo, chúng tôi in một vài dòng đầu tiên của trang 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])

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

<!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>

Trích xuất giá trị thẻ

Chúng tôi có thể trích xuất giá trị thẻ từ phiên bản đầu tiên của thẻ bằng cách sử dụng mã sau.

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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

Python Overview
Python Overview
None
Python is Interpreted

Giải nén tất cả các thẻ

Chúng tôi có thể trích xuất giá trị thẻ từ tất cả các trường hợp của thẻ bằng cách sử dụng mã sau.

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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.

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