Tuy nhiên, có một cách dễ dàng để lấy thông tin dạng bảng từ các trang web chỉ bằng cách sử dụng Pandas và trong vòng chưa đầy một phút và năm dòng mã Python
Trong ví dụ của chúng tôi, chúng tôi sẽ làm việc với dữ liệu bệnh thủy đậu có sẵn tại đây. May mắn thay, chỉ có một bảng trên trang web chứa dữ liệu nhiễm bệnh thủy đậu. Một điểm cần lưu ý là phương pháp của chúng tôi sẽ hoạt động bất kể có bao nhiêu bảng trên trang
Bước 1 - Cài đặt gấu trúc
Nếu bạn chưa cài đặt pandas - hãy cài đặt nó bằng lệnh bên dưới trong thiết bị đầu cuối của bạn
pip install pandas
Bước 2 Hãy bắt đầu cạo
Mã bên dưới chuyển dữ liệu từ trang thành tệp CSV. Xem phần giải thích bên dưới để hiểu cách mã hoạt động
import pandas as pd
url = '//www.monkeypox.global.health/'
df_list = pd.read_html[url]
monkeypox = df_list[0]
monkeypox.to_csv['monkeypox.csv']
Ở dòng đầu tiên - chúng ta đã nhập thư viện pandas. Trong dòng tiếp theo, chúng tôi đang thông báo cho trình thu thập thông tin - dữ liệu hoặc bảng mà chúng tôi muốn thu thập có tại URL 'https. //www. bệnh đậu khỉ. toàn cầu. sức khỏe/'
Dòng sau là quan trọng nhất. Chúng tôi đang yêu cầu thư viện pandas sử dụng hàm read_html để lấy tất cả các bảng trên trang web. read_html[] trả về một danh sách chứa các khung dữ liệu của tất cả các bảng có sẵn trên trang
Chỉ có một bảng trong trường hợp của chúng tôi; . Chúng tôi truy cập nó bằng chỉ mục bằng liên kết mã sau
monkeypox = df_list[0]
Bước tiếp theo là chuyển đổi dữ liệu thành tệp CSV và chúng tôi sử dụng hàm to_csv để chuyển đổi khung dữ liệu bệnh thủy đậu thành tệp CSV
monkeypox.to_csv['monkeypox.csv']
Đó là nó. Đó là cách chúng tôi trích xuất dữ liệu dạng bảng từ trang web sang CSV chỉ với năm dòng mã và chưa đầy một phút
Trong hướng dẫn này, chúng tôi đã giới thiệu cách sử dụng Python và pandas để thu thập dữ liệu bệnh thủy đậu từ trang web Global Health. Chúng tôi đã chỉ cho bạn cách bắt đầu với việc quét web, sử dụng công cụ nào, cách định dạng mã của bạn và trích xuất thông tin phù hợp
Quét web là một cách tuyệt vời để tiết kiệm thời gian và tiền bạc trong doanh nghiệp của bạn bằng cách tự động hóa các tác vụ mà nếu không sẽ mất hàng giờ hoặc hàng ngày để hoàn thành thủ công. Với chuyên môn của Datahut trong việc quét web ở quy mô lớn, chúng tôi có thể giúp bạn bắt đầu và chạy với giải pháp quét web tốt nhất cho nhu cầu của bạn Cạo và làm sạch dữ liệu cũng như lưu trữ dữ liệu trong bảng tính để thao tác và phân tích thêm bằng gấu trúc
Quét web là một phương pháp tuyệt vời để thu thập thông tin nằm rải rác trên web và đưa nó đến một nơi lưu trữ duy nhất. Python có các công cụ cạo tuyệt vời như BeautifulSoup, Selenium và Pandas có thể được sử dụng cho mục đích này. BeautifulSoup và Selenium là các gói cao cấp hơn trong khi Pandas chủ yếu được sử dụng để làm sạch và thao tác dữ liệu
Trong bài viết này, Pandas được sử dụng để thu thập và làm sạch dữ liệu cũng như lưu trữ dữ liệu trong bảng tính để thao tác và phân tích thêm
Python truyền đạt tất cả các chức năng thông qua các gói của nó. Dưới đây là các gói được sử dụng cho dự án này
import pandas as pdfrom openpyxl import Workbookfrom datetime import datetime
Pandas là một gói python mã nguồn mở và chủ yếu được sử dụng để thao tác và phân tích dữ liệu. Đó là một công cụ tuyệt vời, dễ sử dụng và gói gọn rất nhiều chức năng. Ở đây chúng tôi sẽ sử dụng nó để cạo một bảng từ trang Wikipedia và sau đó sử dụng nó để thao tác dữ liệu
Openpyxl là một thư viện nguồn mở khác được sử dụng để đọc cũng như ghi các tệp Excel
Datetime là một mô-đun Python rất linh hoạt được sử dụng để làm việc với các định dạng ngày và giờ
Sau đây là URL của trang web chứa bảng sẽ được loại bỏ. Hãy lưu trữ nó trong một wiki biến
wiki = "//en.wikipedia.or/wiki/List_of_films_based_on_Marvel_Comics"
URL trên chứa hơn 20 bảng và bảng cần được loại bỏ được hiển thị bên dưới [hình. 1]
quả sung. 1
các pd. hàm read-html trả về một danh sách được lưu trữ trong biến df_marvel_site và đối số khớp giúp thu hẹp các bảng chứa văn bản “phòng vé”, bảng cụ thể của chúng tôi
Hàm len[df_marvel] cho biết có bao nhiêu bảng được lưu trữ trong danh sách. Đầu ra cho thấy một bảng duy nhất được lưu trữ trong danh sách, sau đó được lưu trữ dưới dạng khung dữ liệu mới df_marvel
df_marvel_site=pd.read_html[wiki,match=’Box office’]len[df_marvel_site]df_marvel = df_marvel_site[0]
Để kiểm tra xem bảng bên phải đã được cạo hay chưa cũng như các tiêu đề và kiểu dữ liệu của chúng và số đếm, chúng tôi sử dụng các chức năng được hiển thị bên dưới
df_marvel.head[]df_marvel.info[]]
Đầu ra được đưa ra dưới đây [hình. 2]
quả sung. 2
Kiểm tra đầu ra cho thấy có 8 cột, tuy nhiên, tiêu đề dường như được lặp lại hai lần cũng như tên cột dường như có một số dấu cách và dấu gạch nối giữa chúng. Các cột được đặt tên bằng cách sử dụng quy ước đặt tên trường hợp Pascal. Cột ngân sách chỉ có 65 mục cho thấy có một giá trị bị thiếu. Hai hàng cuối cùng cũng hiển thị một bản tóm tắt sẽ bị xóa [hình. 3]. Tất cả các cột có cột tiền tệ đều có dấu phẩy giữa các số cũng như ký hiệu đô la bị xóa để thao tác thêm
quả sung. 3____8
Cột Dtype trong đầu ra cho thấy rằng tất cả các giá trị được lưu trữ dưới dạng đối tượng kiểu. Để chuyển đổi tất cả các cột thành kiểu dữ liệu phù hợp. Sử dụng các biểu thức regex để xóa các ký hiệu đô la khỏi dữ liệu và chuyển đổi chúng thành kiểu dữ liệu float
df_marvel.columns = [“Title”, “Distributor”, “ReleaseDateUS”, “Budget”,”OpeningWeekendNorthAmerica”,”NorthAmerica”,”OtherTerritories”,”Worldwide”]
df_marvel[‘OpeningWeekendNorthAmerica’] = df_marvel[‘OpeningWeekendNorthAmerica’].str.replace[r’\D+’, ‘’].astype[‘float’]df_marvel[‘Budget’] = df_marvel[‘Budget’].str.replace[r’\D+’, ‘’].astype[‘float’]
df_marvel[‘Budget’] = df_marvel[‘Budget’]*1000000.00
df_marvel[‘NorthAmerica’] = df_marvel[‘NorthAmerica’].str.replace[r’\D+’, ‘’].astype[‘float’]
df_marvel[‘OtherTerritories’] = df_marvel[‘OtherTerritories’].str.replace[r’\D+’, ‘’].astype[‘float’]
df_marvel[‘Worldwide’] = df_marvel[‘Worldwide’].str.replace[r’\D+’, ‘’].astype[‘float’]
Chúng ta có thể chạy các chức năng thông tin và đầu trên khung dữ liệu để xem các thay đổi được thực hiện
import pandas as pd
url = '//www.monkeypox.global.health/'
df_list = pd.read_html[url]
monkeypox = df_list[0]
monkeypox.to_csv['monkeypox.csv']
0quả sung. 4
Để chuyển đổi cột “ReleaseDateUS” thành đối tượng kiểu ngày và cột “Tiêu đề” và “Nhà phân phối” thành chuỗi
import pandas as pd
url = '//www.monkeypox.global.health/'
df_list = pd.read_html[url]
monkeypox = df_list[0]
monkeypox.to_csv['monkeypox.csv']
1Kiểm tra đầu ra [hình. 5] cho thấy chúng tôi có một hàng tiêu đề duy nhất, tất cả các cột đã thay đổi thành loại dữ liệu phù hợp và không có giá trị nào bị thiếu trong toàn bộ khung dữ liệu
quả sung. 5
Để lưu trữ cái này dưới dạng tệp excel [hình. 6] có thể được lưu trữ và sau đó được sử dụng để phân tích và thao tác dữ liệu
import pandas as pd
url = '//www.monkeypox.global.health/'
df_list = pd.read_html[url]
monkeypox = df_list[0]
monkeypox.to_csv['monkeypox.csv']
2quả sung. 6
Dữ liệu excel được trích xuất từ trang web có thể được kết hợp với các tệp dữ liệu khác để tiếp tục khám phá và phân tích của bạn
Hy vọng bạn thích bài viết hiện tại và nó hữu ích. Hẹn gặp lại bạn trong lần tiếp theo. Đề xuất được chào đón
Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Tham gia cộng đồng của chúng tôi