Minh họa phương pháp đọc dữ liệu từ file html trong python

Ngôn ngữ đánh dấu siêu văn bản [HTML] là ngôn ngữ đánh dấu tiêu chuẩn để xây dựng các trang web. Chúng tôi có thể hiển thị dữ liệu dạng bảng bằng cách sử dụng

$ pip install lxml
8 và
$ pip install lxml
9 của HTML để chúng tôi có thể nhập và xuất dữ liệu sang DataFrames

Trong bài viết này, chúng ta sẽ tìm hiểu cách đọc dữ liệu dạng bảng từ tệp HTML và tải nó vào Khung dữ liệu Pandas. Chúng ta cũng sẽ tìm hiểu cách ghi dữ liệu từ Pandas DataFrame và vào tệp HTML

Ghi chú. Trong bài viết này, chúng ta sẽ đọc và viết HTML

yếu tố. Bài viết này không bao gồm phân tích cú pháp toàn bộ tệp HTML

Đọc HTML

Chúng ta có thể đọc các bảng của tệp HTML bằng hàm

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0. Hàm này đọc các bảng tệp HTML dưới dạng Pandas DataFrames. Nó có thể đọc từ một tệp hoặc một URL

Chúng ta hãy xem xét từng nguồn đầu vào một

Đọc dữ liệu HTML từ một tệp

Đối với phần này, chúng tôi sẽ sử dụng một bộ dữ liệu đầu vào. Một bảng chứa các ngôn ngữ lập trình và năm tạo ra chúng. Bảng khác có kích thước đất và chi phí của chúng bằng USD

Lưu nội dung HTML sau vào tệp có tên

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
1





  
  Table Data



  
Programming LanguageCreatorYearCDennis Ritchie1972PythonGuido Van Rossum1989RubyYukihiro Matsumoto1995
Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
2

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
3 để phân tích các tệp HTML và XML. Để chức năng
Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0 hoạt động, bạn cần cài đặt
Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
5

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
6 được cài đặt, chúng ta có thể sử dụng chức năng
Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0. Nó trả về một danh sách các DataFrames, trong đó mỗi DataFrame là toàn bộ thành phần bảng của tệp HTML đã cho. Chúng tôi truy cập từng bảng dưới dạng DataFrame bằng cách lập chỉ mục danh sách

Đoạn mã dưới đây minh họa việc sử dụng hàm

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0 để đọc các bảng từ tệp HTML

Ghi chú. Mặc dù bạn cần cài đặt

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
5, nhưng bạn không cần nhập nó vào chương trình của mình để Pandas hoạt động

Chạy đoạn mã trên trên trình thông dịch Python sẽ tạo ra đầu ra sau

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700

Đọc dữ liệu HTML từ URL

Cũng giống như chúng ta đọc các thành phần bảng từ tệp HTML, chúng ta cũng có thể đọc các thành phần bảng từ trang web HTML vào DataFrame với

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0. Tuy nhiên, thay cho tên tệp, chúng tôi sẽ cung cấp một URL như thế này

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']

Và nó sẽ trả về một danh sách các Khung dữ liệu trong đó mỗi Khung dữ liệu đại diện cho một thành phần bảng từ URL đã cho

Dưới đây là mã ví dụ để đọc các thành phần bảng từ URL của trang web bằng Pandas

Nếu chúng tôi chạy thành công đoạn mã trên, chúng tôi có thể thấy đầu ra là

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]

Chúng tôi biết rằng chúng tôi có thể đọc các thành phần bảng từ một trang web. Tuy nhiên, khi trang web yêu cầu xác thực, mã chạy vào ngoại lệ sau

raise HTTPError[req.full_url, code, msg, hdrs, fp]
urllib.error.HTTPError: HTTP Error 401: UNAUTHORIZED

Để đọc dữ liệu từ các URL như vậy, chúng tôi sẽ sử dụng mô-đun

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
1. Bạn có thể cài đặt nó với
read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
2

$ pip install requests

Bây giờ, chúng tôi sẽ sử dụng phương pháp

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
3 từ thư viện
read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
1 để đưa ra yêu cầu đối với URL của trang web trong khi cung cấp tham số
read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
5 tùy chọn nếu trang web yêu cầu xác thực

Phương thức này trả về một đối tượng phản hồi từ trang web. Chúng tôi có thể kiểm tra mã trạng thái [để đảm bảo nội dung chắc chắn ở đó] và lấy văn bản từ đối tượng phản hồi, sau đó chuyển đổi bảng thành DataFrame

Hãy xem một ví dụ về việc sử dụng

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
1 để lấy dữ liệu yêu cầu xác thực. Với mục đích này, chúng tôi đang sử dụng https. //httpbin. tổ chức

import requests

r = requests.get['//httpbin.org/basic-auth/john/johnspassword', auth=['john', 'johnspassword']]

print[r.status_code]
print[r.text]

Khi thực thi đoạn mã trên, chúng ta có thể thấy đầu ra sau

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

200
{
  "authenticated": true, 
  "user": "john"
}

Điều này cho thấy rằng chúng tôi đã truy cập thành công nội dung trang web của một URL được xác thực. Tuy nhiên, trang web này chỉ chứa dữ liệu JSON và chúng tôi cần các phần tử bảng HTML dưới dạng DataFrames

Hãy sử dụng URL trước đó và sử dụng

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
1 để đọc các bảng HTML dưới dạng DataFrames. Mặc dù trang web trước đó là công khai nhưng các bước để truy cập nội dung được xác thực vẫn giống nhau

Khi chúng tôi nhận được phản hồi, chúng tôi có thể chuyển phương thức

read_html['//en.wikipedia.org/wiki/Python_[programming_language]']
8 sang
Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0. Và như thường lệ, chúng ta sẽ nhận được danh sách các bảng mà nó chứa dưới dạng DataFrames

Chạy mã này sẽ tạo ra đầu ra sau

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]

Viết bảng HTML với Pandas của Python

Chúng tôi đã đọc thành công dữ liệu từ các bảng HTML. Hãy viết Pandas DataFrame trong tệp HTML. Điều này có thể đạt được bằng cách sử dụng phương pháp

$ pip install lxml
9

$ pip install lxml
9 lấy đường dẫn của tệp bạn muốn xuất dữ liệu sang. Nếu bạn không cung cấp một đường dẫn tuyệt đối, nó sẽ lưu một tệp liên quan đến thư mục hiện tại

Bạn có thể xuất DataFrame sang bảng HTML như thế này

$ pip install lxml
0

Mã này sẽ tạo ra tệp sau

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
2 trong thư mục hiện tại

$ pip install lxml
1

Lưu ý rằng quá trình xuất không phải là toàn bộ tài liệu HTML mà chỉ là bản thân bảng HTML

Viết các bảng HTML theo kiểu với Pandas của Python

Như chúng ta có thể thấy, theo mặc định, đường viền của bảng là 1, căn lề phải và nó cũng có các chỉ số DataFrame trong các thẻ. Chúng tôi có thể thay đổi cấu trúc mặc định này bằng cách cung cấp một vài tham số tùy chọn

Ẩn chỉ mục

Nếu chúng tôi không muốn bao gồm chỉ mục trong đầu ra của bảng, chúng tôi có thể đặt

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
3 trong
$ pip install lxml
9

$ pip install lxml
2

Mã này tạo tệp

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
2 với nội dung sau

$ pip install lxml
3Thay đổi viền bảng

Đường viền bảng mặc định là 1 pixel. Để thay đổi mặc định này, chúng ta có thể đặt tham số

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
6 thành giá trị tính bằng pixel

Đoạn mã sau thay đổi đường viền thành 3 pixel

$ pip install lxml
4

Tệp được tạo hiện đặt thuộc tính đường viền của bảng thành "3"

$ pip install lxml
1Điều chỉnh văn bản

Theo mặc định, văn bản đầu của bảng được căn phải. Chúng tôi thay đổi sự liên kết này với tham số

Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
7. Ví dụ: làm
Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
8 sẽ thêm
Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
9 vào thẻ của thẻ

Hãy thử căn chỉnh văn bản đầu vào giữa và xem kết quả

$ pip install lxml
6

Bảng được tạo bởi đoạn mã trên trông như thế này

$ pip install lxml
7

Văn bản của đầu bảng hiện được căn chỉnh đẹp mắt ở giữa

Phần kết luận

Trong hướng dẫn này, chúng ta đã học cách nhập và xuất dữ liệu bảng HTML bằng Pandas DataFrames. Chúng tôi đã tải dữ liệu bảng HTML từ các tệp cũng như từ các URL của trang web. Trong trường hợp URL được xác thực, chúng tôi đã sử dụng mô-đun yêu cầu để xác thực và truy xuất dữ liệu của trang web, sau đó chuyển văn bản phản hồi vào hàm

Tables found: 2
First Table
  Programming Language             Creator  Year
0                    C      Dennis Ritchie  1972
1               Python    Guido Van Rossum  1989
2                 Ruby  Yukihiro Matsumoto  1995
Another Table
   Area [sq.ft]  Price [USD]
0         12000          500
1         32000          700
0

Chúng tôi cũng đã viết Pandas DataFrame dưới dạng tệp HTML bằng cách sử dụng hàm

$ pip install lxml
9. Sau đó, chúng tôi tạo kiểu cho bảng đã tạo bằng cách chuyển một vài tham số tùy chọn như
raise HTTPError[req.full_url, code, msg, hdrs, fp]
urllib.error.HTTPError: HTTP Error 401: UNAUTHORIZED
2,
Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
6 và
Tables found: 10
First Table
                0                                                  1
0             NaN                                                NaN
1        Paradigm  Multi-paradigm: functional, imperative, object...
2     Designed by                                   Guido van Rossum
3       Developer                         Python Software Foundation
4  First appeared                              1991; 29 years ago[1]
7. Điều này giúp dễ dàng ghi dữ liệu của DataFrame theo cách trình bày

Làm cách nào để đọc dữ liệu từ tệp HTML trong Python?

Python – Đọc các trang HTML .
Cài đặt BeautifulSoup. Sử dụng trình quản lý gói Anaconda để cài đặt gói cần thiết và các gói phụ thuộc của nó. .
Đọ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. .
Trích xuất giá trị thẻ. .
Trích xuất tất cả các thẻ

Làm cách nào để đọc các bảng từ HTML bằng Python?

Đọc HTML . Hàm này đọc các bảng tệp HTML dưới dạng Pandas DataFrames. Nó có thể đọc từ một tệp hoặc một URL. using the read_html[] function. This function read tables of HTML files as Pandas DataFrames. It can read from a file or a URL.

Làm cách nào để lấy giá trị từ HTML sang Python?

Có hai phương pháp để giải quyết vấn đề của bạn. .
Lấy giá trị đầu vào bằng phương thức nhập của python
Lấy đầu vào từ biểu mẫu HTML. Trong trường hợp này, trước tiên, bạn cần chạy một máy chủ cục bộ. Để làm điều đó, bạn có thể sử dụng các khung python khác nhau. Ví dụ: bình, chai, Django [Tôi đang sử dụng bình ở đây để hiển thị ví dụ. ]

Chủ Đề