Request Cơ Bản Trong Python - Làm Việc Thông Thái

Thư viện requests là một thư viện HTTP đơn giản dành cho python. Về cơ bản nó sử dụng để gửi yêu cầu HTTP qua các dịch vụ web API. Thư viện requests không đi kèm với thư viện tiêu chuẩn của python, để cài đặt nó bằng lệnh pip.

Trong bài viết này, bạn sẽ tìm hiểu những kiến thức cơ bản về thư viện requests bằng cách áp dụng nó để lấy số liệu thời gian thực tình hình virus corona. Bắt đầu nào.

Cài đặt

Trong Windows, gõ lệnh pip sau ở Command Promt

pip install requests

Căn bản về thư viện request

Thực hiện một yêu cầu trong requests rất đơn giản, thực hiện như sau

Trước tiên, hãy chỉ định loại yêu cầu bạn đang thực hiện (POST, GET, PUT, DELETE) và URL mà bạn đang gửi yêu cầu kèm với các thông số bổ sung tùy thuộc vào loại yêu cầu.

Bây giờ chúng ta hãy đưa ra yêu cầu đầu tiên bằng cách lấy các sự kiện trên github. Ta sẽ đưa ra yêu cầu GET (Yêu cầu GET hoạt động giống như cách trình duyệt của yêu cầu một trang). URL của sự kiện github là https://api.github.com/events Code ví dụ như sau

>> import requests >> link = 'https://api.github.com/events' >> response = requests.get(link) >> response.status_code 200 >> response.json()[0]['actor'] {'avatar_url': 'https://avatars.githubusercontent.com/u/45685134?', 'display_login': 'trinhdinhnam', 'gravatar_id': '', 'id': 45685134, 'login': 'trinhdinhnam', 'url': 'https://api.github.com/users/trinhdinhnam'}

Xây dựng một project minh họa

Ví dụ mẫu này chúng ta sẽ xây dựng một project thực hiện GET từ URL cụ thể để có thể lấy được thông tin về virus corora trong thời gian thực.

Ta sử dụng đường link dưới đây để lấy thông tin về virus corona ở Việt Nam

scraping_url = "https://covidapi.info/api/v1/country/VNM"

Nếu bạn muốn lấy cho quốc gia khác, hãy thay mã isocode của Việt Nam “VNM” thành mã khác tương ứng.

Ta thử thực hiện gửi yêu cầu GET đến URL này.

>> scraping_url = "https://covidapi.info/api/v1/country/VNM" >> response = requests.get(scraping_url) >> print(response.json()) {'count': 323, 'result': {'2020-01-22': {'confirmed': 0, 'deaths': 0, 'recovered': 0}, '2020-01-23': {'confirmed': 2, 'deaths': 0, 'recovered': 0}, …

API trả về json phản hồi của số liệu thống kê virus corona của Việt Nam mỗi ngày kể từ trường hợp corona đầu tiên đến ngày thông tin cập nhật mới nhất.

Thông thường khi chúng ta lấy thong tin, ta muốn lấy số liệu thống kê mới nhất. Để làm điều này, ta phải sắp xếp json phản hồi và chọn thống kê ngày mới nhất, điều này có thể được thực hiện bằng cách sử dụng OrderedDict và Sorted.

Xây dựng một hàm để tự động thống kê các trường hợp

Ta thực hiện điều này như sau

def scrap_number(): scraping_url = "https://covidapi.info/api/v1/country/VNM" payload = {};headers= {} response = requests.request("GET", scraping_url, headers=headers, data = payload) info = response.json()['result'] date = list(OrderedDict(sorted(info.items())))[-1] data = info[date] message = "Theo John Hopkins {} thông số ngày {} \n Các trường hợp như sau: \nNhiễm {}\nTử vong {} \nHồi phục {}".format("https://coronavirus.jhu.edu/", date, data['confirmed'], data['deaths'], data['recovered']) return message

Gọi hàm và thu được kết quả

>> print(scrap_number()) Theo John Hopkins https://coronavirus.jhu.edu/ thông số ngày 2020-12-09 Các trường hợp như sau: Nhiễm 1381 Tử vong 35 Hồi phục 1225

Nếu có bất kỳ câu hỏi nào, hãy comment bên dưới. Tôi sẽ trả lời bạn nhanh nhất có thể.

Từ khóa » Get Và Post Trong Python