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ể kết xuất dữ liệu dạng bảng bằng HTML ________ 08 và ________ 09 để 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 URLChú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
Ngôn ngữ lập trình Người sáng tạoNăm CDennis Ritchie1972PythonGuido Van Rossum1989Ruby Yukihiro Matsumoto 1995Tables 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
2Tables 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
5Tables 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 HTMLGhi 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 độngChạ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 phần tử bảng từ tệp HTML, chúng ta cũng có thể đọc các phần tử 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$ pip install lxml
5Và 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à
$ pip install lxml
6Chú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
$ pip install lxml
7Để đọc dữ liệu từ các URL như vậy, chúng tôi sẽ sử dụng mô-đun
$ pip install lxml
51. Bạn có thể cài đặt nó với $ pip install lxml
52Tables 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
0Bây giờ, chúng tôi sẽ sử dụng phương pháp
$ pip install lxml
53 từ thư viện $ pip install lxml
51 để đưa ra yêu cầu tới URL của trang web trong khi cung cấp tham số $ pip install lxml
55 tùy chọn nếu trang web yêu cầu xác thựcPhươ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
$ pip install lxml
51 để 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ứcTables 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
5Khi 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ó
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Đ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
$ pip install lxml
51 để đọ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 nhauKhi chúng tôi nhận được phản hồi, chúng tôi có thể chuyển phương thức
$ pip install lxml
58 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 DataFramesChạy mã này sẽ tạo ra đầu ra sau
$ pip install lxml
6Viế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ạiBạn có thể xuất DataFrame sang bảng HTML như thế này
$ pip install lxml
0Mã này sẽ tạo ra tệp sau
$ pip install lxml
62 trong thư mục hiện tại$ pip install lxml
1Lư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ụcNế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
$ pip install lxml
63 trong $ pip install lxml
9$ pip install lxml
2Mã này tạo tệp
$ pip install lxml
62 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ố
$ pip install lxml
66 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
4Tệ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ảnTheo 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ố
$ pip install lxml
67. Ví dụ: thực hiện $ pip install lxml
68 sẽ thêm $ pip install lxml
69 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
6Bảng được tạo bởi đoạn mã trên trông như thế này
$ pip install lxml
7Vă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
0Chúng tôi cũng đã viết Pandas DataFrame dưới dạng tệp HTML bằ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ư $ pip install lxml
72, $ pip install lxml
66 và $ pip install lxml
67. Điều này giúp dễ dàng ghi dữ liệu của DataFrame theo cách trình bày