Chúng ta sẽ sử dụng phương pháp nào để tìm nạp phần tử từ HTML?

Python có một bộ sưu tập các gói phong phú và một công cụ pip được sử dụng để quản lý các gói đó trong môi trường phát triển hiện tại. Hướng dẫn này sẽ sử dụng các mô-đun bên dưới

  • yêu cầu. Để thực hiện các yêu cầu web

  • súp đẹp. Để trích xuất dữ liệu từ phản hồi HTML

Sử dụng lệnh 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)9 bên dưới để cài đặt các gói cần thiết.

1pip install beautifulsoup4 requests

con trăn

Sử dụng khoảng trắng để đề cập đến nhiều mô-đun trong một câu lệnh cài đặt

Khai thác và làm sạch dữ liệu

Bước đầu tiên của cạo là lấy dữ liệu. Vì vậy, với mục đích trình diễn, chúng tôi sẽ sử dụng trang Danh sách công cụ trò chơi. Hãy mở trang và xem cấu trúc bằng tùy chọn kiểm tra

Thao tác này sẽ hiển thị cửa sổ công cụ dành cho nhà phát triển sẽ hiển thị cấu trúc phần tử HTML. Có 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)2 với 1soup = BeautifulSoup(content.text, 'html.parser')11soup = BeautifulSoup(content.text, 'html.parser')2 which contains all the visible HTML elements as:

  1. Đây là thẻ 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)3 chứa thông tin chi tiết về công cụ trò chơi.

  2. Mọi 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)6 đại diện cho một mục trong danh sách và chứa các mục trong cột.

  3. Đây là con trỏ sẽ đánh dấu phần tử tương ứng trên trang web và đây là con trỏ đánh dấu cột đầu tiên của hàng thứ hai i. e. Tiêu đề "Động cơ 4A"

  4. 1soup = BeautifulSoup(content.text, 'html.parser')5 cung cấp các thuộc tính của nút được chọn như 1soup = BeautifulSoup(content.text, 'html.parser')1 , 1pip install beautifulsoup4 requests9, etc. ______38 cung cấp thông tin chi tiết về mã 1soup = BeautifulSoup(content.text, 'html.parser')91pip install beautifulsoup4 requests20 provides the details about re-drawn content like images etc.

  5. Phần 1pip install beautifulsoup4 requests21 đang hiển thị tên của 1pip install beautifulsoup4 requests22 i.e. 1pip install beautifulsoup4 requests23 là tên tùy chỉnh được đặt cho một nhóm thuộc tính kiểu CSS được áp dụng cho bảng này.

Cạo tập lệnh

Bây giờ chúng ta đã biết về các thẻ HTML cụ thể chứa dữ liệu, vì vậy hãy bắt tay ngay vào viết mã

Bước đầu tiên là nhập mô-đun. ______18 để thu thập dữ liệu và 1pip install beautifulsoup4 requests25 để thực hiện các yêu cầu HTTP.

1pip install beautifulsoup4 requests8

con trăn

Thực hiện một yêu cầu HTTP để nhận nội dung HTML qua URL cụ thể

1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)

con trăn

Tạo đối tượng 1pip install beautifulsoup4 requests8 và xác định 1pip install beautifulsoup4 requests27 .

1soup = BeautifulSoup(content.text, 'html.parser')

con trăn

Trình phân tích cú pháp mặc định là 1pip install beautifulsoup4 requests28 nhẹ nhàng và nhanh chóng so với 1pip install beautifulsoup4 requests29 though 1pip install beautifulsoup4 requests28 is platform dependent and 1pip install beautifulsoup4 requests29 is part of Beautiful Soup.

Trình phân tích cú pháp chuyển đổi đầu vào thành các thực thể đơn lẻ được gọi là mã thông báo và tiếp tục chuyển đổi mã thông báo thành biểu đồ hoặc cấu trúc cây để xử lý

1pip install beautifulsoup4 requests8 có thể trích xuất một hoặc nhiều lần xuất hiện của một thẻ cụ thể và cũng có thể chấp nhận tiêu chí tìm kiếm dựa trên các thuộc tính như.

  1. Tìm thấy. Hàm này lấy tên của thẻ làm đầu vào chuỗi và trả về kết quả khớp tìm thấy đầu tiên của thẻ cụ thể từ phản hồi của trang web dưới dạng

1pip install beautifulsoup4 requests2

con trăn

  1. Findall. Sử dụng ______293 để trích xuất tất cả các lần xuất hiện của một thẻ cụ thể từ phản hồi của trang dưới dạng.

1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)9

con trăn

1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)93 trả về một đối tượng của 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)95 cung cấp quyền truy cập dựa trên chỉ mục vào kết quả của các lần xuất hiện được tìm thấy và . 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)96 loop.

Danh sách vượt qua. ______293 có thể chấp nhận danh sách các thẻ như 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)98 và các tham số như 1soup = BeautifulSoup(content.text, 'html.parser')1 to find tags with unique id and 1soup = BeautifulSoup(content.text, 'html.parser')70 to process tags with 1soup = BeautifulSoup(content.text, 'html.parser')70 attribute as:

1soup = BeautifulSoup(content.text, 'html.parser')7

con trăn

vượt qua chức năng. Một chức năng có thể chứa logic tùy chỉnh của bạn để xác thực thẻ và có thể được sử dụng như

1soup = BeautifulSoup(content.text, 'html.parser')0

con trăn

  1. Tìm kiếm theo hướng thuộc tính. Kết quả của hàm ____293 cũng có thể chứa

  • Hàng từ các bảng khác

  • Các giá trị không mong muốn Những giá trị này thường không được mong muốn. Vì vậy, các thuộc tính như 1soup = BeautifulSoup(content.text, 'html.parser')1 , 1pip install beautifulsoup4 requests22 hoặc 1soup = BeautifulSoup(content.text, 'html.parser')75 are used to further refine the search.

Hãy in bảng tìm thấy đầu tiên (bảng nội dung) để xác định các thuộc tính là

1soup = BeautifulSoup(content.text, 'html.parser')5

con trăn

Bảng nội dung có thuộc tính lớp CSS duy nhất i. e. ______376 có thể dùng để tìm bảng nội dung chính dưới dạng.

1pip install beautifulsoup4 requests0

con trăn

Đây 1soup = BeautifulSoup(content.text, 'html.parser')77 phù hợp hơn 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)93 , vì . 1soup = BeautifulSoup(content.text, 'html.parser')76 class property.

Ngoài ra, thuộc tính 1soup = BeautifulSoup(content.text, 'html.parser')00 (không có sẵn trong các phiên bản cũ) có thể được sử dụng như 1soup = BeautifulSoup(content.text, 'html.parser')01< . .

  1. Thẻ lồng nhau. Có thể tìm thấy các thẻ lồng nhau bằng cách sử dụng phương thức 1soup = BeautifulSoup(content.text, 'html.parser')02 như.

1pip install beautifulsoup4 requests1

con trăn

Sử dụng biểu thức chính quy

Biểu thức chính quy cho phép bạn tìm các thẻ cụ thể bằng cách khớp một mẫu thay vì toàn bộ giá trị của một thuộc tính. Beautiful Soup có thể lấy các đối tượng biểu thức chính quy để tinh chỉnh tìm kiếm. Dưới đây là ví dụ để tìm tất cả các thẻ neo có tiêu đề bắt đầu bằng 1soup = BeautifulSoup(content.text, 'html.parser')03 .

1pip install beautifulsoup4 requests2

con trăn

giải thích

  • ______404 . Bắt đầu khớp từ đầu (nếu không thì có thể khớp từ bất kỳ đâu như ở giữa).

  • ______403 . Khớp các ký tự chính xác.

  • ______406 . ______407 nghĩa là khớp với bất kỳ ký tự nào và 1soup = BeautifulSoup(content.text, 'html.parser')08 nghĩa là tiếp tục khớp cho đến khi ngắt dòng .

Tham số và Thuộc tính

Beautiful Soup cung cấp chức năng như 1soup = BeautifulSoup(content.text, 'html.parser')09 , 1soup = BeautifulSoup(content.text, 'html.parser')50 , . 1soup = BeautifulSoup(content.text, 'html.parser')51 which can be applied as:

  • Sử dụng 1soup = BeautifulSoup(content.text, 'html.parser')52 để áp dụng giới hạn cho kết quả

  • Sử dụng 1soup = BeautifulSoup(content.text, 'html.parser')53 để trích xuất tất cả các thẻ neo có văn bản 1soup = BeautifulSoup(content.text, 'html.parser')54

  • Theo mặc định, Beautiful Soup tìm kiếm thông qua tất cả các phần tử con. Vì vậy, cài đặt ______455 sẽ hạn chế tìm kiếm đối với phần tử được tìm thấy đầu tiên và chỉ phần tử con của nó.

1pip install beautifulsoup4 requests3

con trăn

Beautiful Soup cũng cho phép bạn đề cập đến các thẻ dưới dạng thuộc tính để tìm lần xuất hiện đầu tiên của thẻ dưới dạng

1pip install beautifulsoup4 requests4

con trăn

Beautiful Soup cũng cung cấp các thuộc tính điều hướng như

  • 1soup = BeautifulSoup(content.text, 'html.parser')561soup = BeautifulSoup(content.text, 'html.parser')57 . Để duyệt qua các thẻ ở cùng cấp độ, như 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)6 hoặc 1URL = '//en.wikipedia.org/wiki/List_of_game_engines' 2content = requests.get(URL)5 trong cùng một .

  • 1pip install beautifulsoup4 requests001pip install beautifulsoup4 requests01 . Để thay đổi các phần tử HTML.

Nhiều phần tử cũng có thể được duyệt bằng 1pip install beautifulsoup4 requests02 , 1pip install beautifulsoup4 requests03, and 1pip install beautifulsoup4 requests04 , 1pip install beautifulsoup4 requests05

Những điểm chính

  • Logic để trích xuất dữ liệu thường phụ thuộc vào cấu trúc HTML của trang web, do đó, một số thay đổi về cấu trúc có thể phá vỡ logic

  • Nội dung của một trang web có thể tuân theo luật hiện hành, vì vậy hãy đảm bảo đọc các điều khoản và điều kiện về nội dung

  • Sử dụng phương pháp 1pip install beautifulsoup4 requests06 để in phản hồi HTML được định dạng.

Mã cho tập lệnh này có sẵn trên Github để thử nghiệm. Sẽ thật tuyệt khi chọn bất kỳ trang web dựa trên nội dung nào và viết tập lệnh của riêng bạn để loại bỏ nó. Chúc mừng cạo

4 phương pháp tìm phần tử HTML là gì?

Có một số cách để thực hiện việc này. .
Tìm phần tử HTML theo id
Tìm phần tử HTML theo tên thẻ
Tìm phần tử HTML theo tên lớp
Tìm các phần tử HTML bằng bộ chọn CSS
Tìm phần tử HTML bằng bộ sưu tập đối tượng HTML

Chúng ta sẽ sử dụng phương pháp nào để lấy giá trị từ thẻ HTML?

Phương thức getAttribute() trả về giá trị thuộc tính của phần tử.

Sử dụng phương pháp nào để lấy một phần tử từ trang web?

Bộ định vị phần tử , thường được gọi đơn giản là bộ định vị, là một phương pháp tìm phần tử trên một trang.

Các phương thức thường được sử dụng để tìm nạp nội dung của phần tử HTML là gì?

Phương thức getElementById . Trong ví dụ trên, phương thức getElementById đã sử dụng id="demo" để tìm phần tử.

Chủ đề