Kết nối một website để lấy dữ liệu
Tìm hiểu và sử dụng một API kết nối một website để lấy dữ liệu về. Khuyến khích chọn một trong các loại dữ liệu: Covid, thời tiết, tỉ giá hối đoái,...
Web Scraping
Một số trang web có thể chứa một lượng rất lớn dữ liệu vô giá, như giá cổ phiếu, chi tiết sản phẩm, số liệu thống kê thể thao, thông tin liên hệ của công ty, v.v...
Nếu muốn truy cập thông tin này, bạn phải sử dụng bất kỳ định dạng nào mà trang web sử dụng hoặc sao chép và dán thông tin theo cách thủ công vào một tài liệu mới. Quá trình này gọi là web scraping hay data scraping. Vậy làm sao để thực hiện Scraping một trang web?
Để hiểu rõ hơn hãy cùng chúng mình tìm hiểu và phân tích dữ liệu về Covid nhé!
Phân tích dữ liệu về Covid
Đại dịch COVID-19 đã thay đổi hoàn toàn thế giới mà chúng ta đang sống, và các giao thức cũng như hoạt động kinh doanh toàn cầu cũng không phải là ngoại lệ. Các công ty/doanh nghiệp trên khắp thế giới đang thực hiện các biện pháp điều chỉnh hợp lý để đứng vững trong cuộc chiến chống lại vi-rút corona.
Với hơn 277 triệu ca dương tính (tính đến ngày 24/12/2021) trên toàn thế giới, vi-rút corona không chỉ làm gián đoạn cuộc sống hàng ngày của chúng ta mà còn thay đổi hoàn toàn hình thức và phương thức kinh doanh. Vì vậy, việc phân tích dữ liệu về Covid là vô cùng quan trọng và cần thiết.
API được hỗ trợ bởi
- Digital Ocean
- Travel Advice
- Daemon Solutions
Tiến hành phân tích dữ liệu
Import thư viện
# tính toán
import numpy as np
# phân tích, đọc dữ liệu
import pandas as pd
# vẽ biểu đồ
import matplotlib.pyplot as plt
# gửi yêu cầu HTTP qua các dịch vụ web API
import requests
# làm việc với file json
import json
# trích xuất các thông tin
from bs4 import BeautifulSoup
Liệt kê tất cả các trường có trong API
# Gửi requests đến API
url = "https://api.covid19api.com/"
payload = {}
headers = {}
response = requests.request("GET", url, headers = headers, data = payload)
# Chuyển dữ liệu về dạng json
scraping = response.json()
# In toàn bộ dữ liệu có trong API
scraping
API liệt kê danh sách các quốc gia
Liệt kê danh sách các quốc gia đã được thu thập dữ liệu
countries = scraping["countriesRoute"]
data = {
'List': [
"Tên API",
"Mô tả",
"Đường dẫn",
],
'Values': [
countries["Name"],
countries["Description"],
countries["Path"],
]
}
table = pd.DataFrame(data, columns = [
'List', 'Values'
])
table
API thống kê toàn bộ tình hình Covid trên toàn thế giới và từng quốc gia
Thống kê toàn bộ dữ liệu Covid trên toàn thế giới và từng quốc gia
summary = scraping["summaryRoute"]
data = {
'List': [
"Tên API",
"Mô tả",
"Đường dẫn",
],
'Values': [
summary["Name"],
summary["Description"],
summary["Path"],
]
}
table = pd.DataFrame(data, columns = [
'List', 'Values'
])
table
API liệt kê tất cả các trường hợp theo quốc gia
Liệt kê toàn bộ dữ theo quốc gia từ ngày bắt đầu cho đến hiện tại
country = scraping["countryDayOneRoute"]
data = {
'List': [
"Tên API",
"Mô tả",
"Đường dẫn",
],
'Values': [
country["Name"],
country["Description"],
country["Path"],
]
}
table = pd.DataFrame(data, columns = [
'List', 'Values'
])
table
Phân tích API
Từ trên, ta chọn được 3 API nổi bật để tiến hành phân tích dữ liệu:
- API liệt kê danh sách các quốc gia
- API thống kê toàn bộ tình hình Covid trên toàn thế giới và từng quốc gia
- API liệt kê tất cả các trường hợp theo quốc gia
Liệt kê tất cả các quốc gia được thu thập dữ liệu
Ở đây, chúng ta sẽ sử dụng API liệt kê danh sách các quốc gia.
url = "https://api.covid19api.com/countries"
payload = {}
headers = {}
response = requests.request("GET", url, headers = headers, data = payload)
scraping = response.json()
scraping
📌 Xem tiếp: https://github.com/leanhducprovn/cdn/blob/master/tlu/elearning/introductory-data-science/scraping-covid-data/main.ipynb
Phân tích bởi: Lê Anh Đức