Phần tử html nào được hàm pandas read_html() hỗ trợ để nhập dữ liệu dưới dạng khung dữ liệu?

Trong bài viết này, chúng tôi sẽ đề cập đến các tính năng chính của Python và SQL, những điểm tương đồng và khác biệt chính của chúng cũng như bạn nên chọn cái nào trước để bắt đầu hành trình khoa học dữ liệu của mình

Javier Canales Luna

12 phút

Cách cài đặt Python

Tìm hiểu cách cài đặt Python trên máy cá nhân của bạn với hướng dẫn từng bước này. Cho dù bạn là người dùng Windows hay macOS, hãy khám phá các phương pháp khác nhau để bắt đầu với Python trên máy của bạn

Quét web đã trở thành một kỹ thuật phổ biến để lấy dữ liệu từ các trang web không cung cấp API. Mặc dù người dùng có thể thực hiện quét web theo cách thủ công, nhưng thuật ngữ này thường đề cập đến các quy trình tự động sử dụng bot hoặc trình thu thập dữ liệu web

Mục lục

Những người đam mê Python đã nghĩ ra nhiều công cụ quét web khác nhau. Pandas read HTML là một trong số đó, cho phép người dùng đọc các bảng từ một chuỗi, URL, tệp và cột. Đó là một giải pháp thay thế cho Beautiful Soup và lxml để đọc các bảng từ các trang HTML vào danh sách các đối tượng DataFrame. Hàm read_html() trong Pandas có thể đọc các bảng từ cả tệp HTML và chuỗi HTML

Dưới đây, bạn sẽ học cách đọc HTML trong pandas và áp dụng nó trong cài đặt thực tế. Bạn có thể sử dụng mục lục để điều hướng toàn bộ bài viết

Pandas read_html() là gì?

Phần tử html nào được hàm pandas read_html() hỗ trợ để nhập dữ liệu dưới dạng khung dữ liệu?

Pandas read_html() là một chức năng đọc các bảng HTML vào danh sách các đối tượng DataFrame. Chức năng đến từ gói Python beautifulsoup4

Chức năng này hoạt động bằng cách phân tích trang HTML đầu tiên thành một đối tượng BeautifulSoup. Khi đối tượng được tạo, bạn có thể sử dụng nó. phương thức find_all() để tìm kiếm bất kỳ thẻ nào bạn muốn

Tìm kiếm phổ biến nhất là tìm kiếm tất cả các thẻ bảng, được thực hiện bằng cách tìm kiếm thẻ “bảng”

Khi bạn có danh sách tất cả các thẻ bảng, bạn có thể lặp qua từng thẻ và sử dụng BeautifulSoup. phương thức find() để tìm kiếm các thẻ tr (hàng của bảng) và td (dữ liệu của bảng)

Các. phương thức find() trả về một danh sách tất cả các thẻ phù hợp, sau đó bạn có thể lặp qua và trích xuất văn bản từ đó

Cách dùng Pandas để đọc trong file HTML

Trước khi sử dụng hàm read_html(), bạn cần cài đặt lxml. Nó là một mô-đun bên ngoài không có trong bản phân phối Python tiêu chuẩn. Bạn có thể cài đặt nó bằng pip

cài đặt pip lxml

Khi bạn đã cài đặt lxml, bạn có thể sử dụng read_html() để đọc tệp HTML dưới dạng danh sách các đối tượng DataFrame. Mỗi DataFrame là một phần tử bảng từ tệp HTML

Giả sử bạn muốn đọc bảng xếp hạng các đội FIFA từ trang này. Bạn có thể sử dụng các lệnh sau để đọc tất cả các bảng trên trang này

nhập gấu trúc dưới dạng pd

nhập numpy dưới dạng np

nhập matplotlib. pyplot dưới dạng plt

từ unicodedata nhập chuẩn hóa

#đọc tất cả các bảng HTML từ URL cụ thể

tab = pd. read_html(‘https. // int. đường bóng đá. com/đội/xếp hạng/fifa/’)

Nếu bạn muốn xác định tổng số bàn trên trang này, bạn có thể sử dụng các lệnh sau

#display tổng số bảng đã đọc

len(tab)

44

Như bạn có thể thấy, chỉ có một bảng trên trang. Nhưng nếu có nhiều bảng và bạn chỉ quan tâm đến bảng có từ “Scotland” trong đó, bạn có thể viết lệnh của mình cho phù hợp

#đọc các bảng HTML từ URL cụ thể có từ “Scotland” trong đó

tab = pd. read_html(‘https. // int. đường bóng đá. com/đội/xếp hạng/fifa/’,

trận đấu='Scotland')

#display tổng số bảng đã đọc

len(tab)

1

Bạn có thể sửa đổi lệnh để lấy bảng cụ thể mà bạn muốn. Ví dụ: bạn có thể muốn lấy bảng đầu tiên trên trang hoặc bạn có thể chỉ muốn xem bốn cột đầu tiên của bảng

Cách sử dụng Pandas để đọc HTML từ một chuỗi

Trước khi bạn sử dụng Pandas để đọc HTML từ một chuỗi, bạn cần cài đặt Pandas bằng cách sử dụng lệnh conda hoặc pip

pip3 cài đặt gấu trúc

conda cài đặt gấu trúc

Khi bạn đã hoàn thành việc đó, bạn có thể tạo một tệp Python. Dán một dòng mã trong đó bất kỳ biến nào chứa HTML. Theo tài liệu chính thức của Pandas, chuỗi có thể đại diện cho HTML hoặc URL

Nếu bạn đang sử dụng lxml, nó sẽ chỉ chấp nhận các giao thức sau

  • ftp
  • url tệp
  • http

Do đó, nếu bạn đang sử dụng URL bắt đầu bằng “HTTPS”, hãy xóa chữ 's' ở cuối. Sau khi dán mã bằng HTML, bạn có thể chạy hàm read_html 

nhập gấu trúc dưới dạng pd

df_list = pd. đọc_html(html)

Hàm sẽ trích xuất dữ liệu từ các bảng HTML, hiển thị cho bạn danh sách các bảng. Nếu bạn biết số lượng bảng trong chuỗi, bạn có thể xác nhận rằng Pandas đã đọc tất cả các DataFrames bằng cách sử dụng lệnh sau

in(len(df_list))

# ĐẦU RA. 1

Nếu chuỗi của bạn chỉ có một bảng, biến df_list sẽ xác nhận bảng đó. Cuối cùng, nếu bạn muốn xem nội dung của bảng trong chuỗi của mình, bạn có thể sử dụng lệnh này

in(df_list[0])

Nó sẽ trích xuất dữ liệu từ/các bảng HTML và hiển thị nó

Cách đọc HTML trong Pandas thông qua một URL

Pandas read_html() cũng có thể chấp nhận một URL. Bạn có thể đọc các bảng HTML từ các trang web trực tiếp vào DataFrame của gấu trúc bằng cách chuyển URL tới hàm read_html()

Hàm sẽ trả về một DataFrame cho mỗi bảng trên trang. Trong ví dụ HTML đọc Pandas này, URL sau được sử dụng. https. // int. đường bóng đá. com/đội/xếp hạng/fifa/

Để liệt kê các DataFrames, hãy dán lệnh sau

dfs = pd. read_html(URL)

Bạn sẽ thấy một danh sách các DataFrames. Giờ đây, bạn có thể nhập len(dfs) để xem tất cả các bảng trong URL. URL ví dụ HTML đọc Pandas có 1 bảng

Cách đọc HTML trong Pandas thông qua một tệp

Bạn cũng có thể đọc các bảng HTML từ một tệp cục bộ bằng cách chuyển đường dẫn tệp tới hàm read_html(). Giả sử bạn đã lưu một tệp HTML có tên là “bảng. html” trong thư mục làm việc của bạn. Đường dẫn tệp sẽ là

file_path = 'bảng. html'

Bây giờ, để đọc bảng này vào DataFrame của gấu trúc, hãy chạy đoạn mã sau

file_path = ''bảng. html'

với open(file_path, ‘r’) là f

dfs = pd. read_html(f. đọc())

dfs[0]

Cách sử dụng Pandas Đọc HTML cho các URL yêu cầu xác thực

Đôi khi, trang web bạn đang cố đọc dữ liệu sẽ yêu cầu xác thực. Trong những trường hợp này, bạn có thể sử dụng Pandas để đọc HTML từ trang web bằng cách cung cấp thông tin đăng nhập của mình

Bạn sẽ thấy ngoại lệ sau khi cố chạy mã bình thường

tăng HTTPError(req. full_url, code, msg, hdrs, fp)

urllib. lỗi. Lỗi HTTP. Lỗi HTTP 401. KHÔNG ĐƯỢC PHÉP

Vì vậy, bạn cần cài đặt mô-đun yêu cầu để truy cập các trang web này

yêu cầu cài đặt $ pip

Giờ đây, bạn có thể sử dụng hàm get() trong mô-đun yêu cầu để đọc HTML. Trước tiên, bạn phải chuyển thông tin đăng nhập của mình (tên người dùng và mật khẩu) dưới dạng một bộ dữ liệu trong tham số xác thực

Ví dụ: giả sử bạn cần xác thực để lấy dữ liệu từ trang web được đề cập trước đó, https. // int. đường bóng đá. com/đội/xếp hạng/fifa/. Sử dụng lệnh sau

yêu cầu nhập khẩu

r = yêu cầu. nhận được ('https. // int. đường bóng đá. com/đội/xếp hạng/fifa/’, auth=(‘john’, ‘johnspassword’))

in (r. status_code)

in (r. chữ)

Bạn đã truy cập nội dung của URL thành công nếu bạn thấy thông báo sau

200

{

"xác thực". ĐÚNG VẬY,

"người dùng". "John"

}

Tuy nhiên website chỉ có dữ liệu JSON. Bạn cần các phần tử bảng HTML. Vì vậy, bạn sẽ sử dụng mô-đun yêu cầu để đọc các bảng HTML

Lợi ích của việc đọc HTML trong Pandas

Phần tử html nào được hàm pandas read_html() hỗ trợ để nhập dữ liệu dưới dạng khung dữ liệu?

Pandas đọc HTML có rất nhiều lợi ích để cung cấp. Chẳng hạn, nó có thể giúp bạn tiết kiệm thời gian bằng cách tự động lấy dữ liệu từ trang web. Hơn nữa, nó là một công cụ hiệu quả có thể giúp bạn thu thập dữ liệu từ nhiều nguồn và làm sạch dữ liệu đó để phân tích thêm

Dưới đây là một số lợi ích của việc sử dụng HTML đã đọc trong Pandas

  • Sự miêu tả dữ liệu. Pandas cung cấp các tính năng biểu diễn dữ liệu hợp lý. Kết quả là, nó là một công cụ thao tác và phân tích dữ liệu tuyệt vời
  • rút trích nội dung trang web. Một trong những lợi thế quan trọng nhất của việc sử dụng HTML đã đọc trong Pandas là nó có thể giúp bạn tự động hóa các tác vụ quét web
  • Xử lý dữ liệu hiệu quả. Pandas có thể xử lý một lượng lớn dữ liệu một cách hiệu quả
  • Dọn dẹp dữ liệu. Một lợi ích khác của việc đọc HTML trong Pandas là nó có thể giúp bạn tự động xóa dữ liệu của mình

Hạn chế của Pandas Đọc HTML

Phần tử html nào được hàm pandas read_html() hỗ trợ để nhập dữ liệu dưới dạng khung dữ liệu?

Hy vọng, hướng dẫn này sẽ giúp bạn hiểu cách đọc pandas to_html trong HTML, nhưng vẫn còn một số hạn chế đối với phương pháp này. Một người không có nền tảng mã hóa sẽ gặp khó khăn trong việc hiểu cách làm cho nó hoạt động

Một vấn đề khác với phương pháp này là HTML được tạo ra có thể quá rộng và khiến trang của bạn tải chậm. Mặt khác, sử dụng công cụ quét web tự động và dựng sẵn là cách đáng tin cậy và đơn giản hơn để thu thập dữ liệu từ web để theo dõi giá, phân tích đối thủ cạnh tranh hoặc bất kỳ mục tiêu kinh doanh nào khác

Một cách tiếp cận là lấy proxy từ một nhà cung cấp đáng tin cậy, chẳng hạn như Rayobyte và sử dụng chúng để gửi yêu cầu đến trang web mục tiêu. Tuy nhiên, điều này có thể tốn thời gian

Giải pháp thay thế thứ hai và đơn giản hơn là Scraping Robot, một công cụ quét web giúp việc quét web trở nên dễ dàng bằng cách loại bỏ rắc rối và thời gian khỏi quy trình. Bạn chỉ phải cung cấp các URL cần quét và trình quét web sẽ thực hiện phần còn lại

Sử dụng Pandas Read HTML để quét web

Phần tử html nào được hàm pandas read_html() hỗ trợ để nhập dữ liệu dưới dạng khung dữ liệu?

Pandas đọc HTML có thể là một cách hiệu quả để tìm kiếm dữ liệu trên web. Chỉ với một vài dòng mã, bạn có thể đọc các bảng HTML vào DataFrame của gấu trúc, giúp làm việc với dữ liệu trong Python trở nên đơn giản

Hơn nữa, bạn có thể tùy chỉnh bảng Pandas read HTML bằng cách thay đổi chỉ mục, đường viền, màu sắc, tên cột, v.v. Tuy nhiên, nếu làm việc với mã quá khó hiểu hoặc choáng ngợp, bạn có thể chọn sử dụng công cụ quét web được tạo sẵn, chẳng hạn như Scraping Robot, để thu thập tất cả thông tin bạn cần

Thông tin trong bài viết này, bao gồm thông tin được đăng bởi nhân viên chính thức, tài liệu do khách gửi, bài đăng trên bảng tin hoặc tài liệu của bên thứ ba khác chỉ được trình bày cho mục đích giáo dục và nâng cao kiến ​​thức của người đọc. Tất cả các nhãn hiệu được sử dụng trong ấn phẩm này được thừa nhận là tài sản của chủ sở hữu tương ứng của họ



Những bài viết liên quan

Phân tích bán lẻ (5 cách để sử dụng quét web dữ liệu bán lẻ)

Người ảnh hưởng trên Twitter. Tại sao bạn cần chúng và cách tìm chúng

3 phương pháp quản lý dữ liệu tốt nhất với Web Scraping

Cách sử dụng dụng cụ cạo AliExpress để cạo AliExpress

Robot cạo

Bắt đầu Cạo bây giờ

Nhận một công cụ quét web đáng tin cậy với chi phí thấp hơn so với các công ty khác. 5000 mẩu tin lưu niệm đầu tiên của bạn là miễn phí

Các phần tử HTML nào được pandas read_html() hỗ trợ?

gấu trúc. .
io. str hoặc giống như tệp. .
cuộc thi đấu. str hoặc biểu thức chính quy được biên dịch, tùy chọn. .
hương vị. str hoặc Không có, chứa chuỗi. .
tiêu đề. int hoặc giống danh sách hoặc Không, tùy chọn. .
chỉ mục_col. int hoặc giống danh sách hoặc Không, tùy chọn. .
mũi dùi. int hoặc list-like hoặc slice hoặc Không, tùy chọn. .
attrs. dict hoặc Không, tùy chọn

Làm cách nào để đọc dữ liệu HTML bằng Python bằng gấu trúc?

Để đọc tệp HTML, pandas dataframe tìm thẻ. Thẻ đó được gọi là thẻ . Thẻ này được sử dụng để xác định một bảng trong HTML. gấu trúc sử dụng read_html() để đọc tài liệu HTML.

Làm cách nào để đọc HTML trong DataFrame của gấu trúc?

Bạn có thể đọc trực tiếp các bảng HTML từ các trang web vào DataFrame của pandas bằng cách chuyển URL tới hàm read_html() . Bạn sẽ thấy một danh sách các DataFrames. Bây giờ bạn có thể gõ len(dfs) để xem tất cả các bảng trong URL. URL ví dụ HTML đọc Pandas có 1 bảng.

Thư viện Python nào có phương thức read_html() mà chúng ta có thể sử dụng để phân tích tài liệu HTML và trích xuất bảng?

Pandas là một trong những thư viện Python phổ biến nhất để phân tích dữ liệu. Thư viện này có nhiều chức năng hữu ích. Một trong những chức năng như vậy là pandas read_html . Nó có thể chuyển đổi các bảng HTML thành DataFrame của gấu trúc một cách hiệu quả.