Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Yêu cầu GET và POST bằng Python


Python có thể được dùng để truy cập trang web cũng như đăng nội dung lên trang web. Có nhiều mô-đun như httplib, urllib, httplib2 nhưng mô-đun requests là đơn giản nhất và có thể viết các chương trình mạnh mẽ, đơn giản liên quan đến phương thức GET và POST.

Phương thức GET

Phương thức GET là một phần của mô-đun requests trong Python, dùng để lấy dữ liệu từ một URL web. Trong ví dụ dưới đây, chúng ta truy cập trang web của chính mình và tìm ra nhiều phản hồi khác nhau thông qua phương thức GET. Chúng ta nhận được mã hóa, thời gian phản hồi, header và một phần nội dung body.

Ví dụ

import requests
req = requests.get('https://www.tutorialspoint.com/')
# Mã hóa trang
e = req.encoding
print("Encoding: ", e)
# Mã phản hồi
s = req.status_code
print("Response code: ", s)
# Thời gian phản hồi
t = req.elapsed
print("Response Time: ", t)
t = req.headers['Content-Type']
print("Header: ", t)
z = req.text
print("\nMột phần văn bản từ trang web:\n", z[0:200])

Kết quả

Chạy mã trên cho kết quả sau:

Encoding: UTF-8
Response code: 200
Response Time: 0:00:00.103850
Header: text/html; charset=UTF-8
Some text from the web page: 

Phương thức POST

Phương thức POST dùng để gửi dữ liệu chủ yếu qua biểu mẫu đến máy chủ để tạo hoặc cập nhật dữ liệu trên máy chủ. Mô-đun requests cung cấp phương thức post có thể gửi dữ liệu trực tiếp bằng cách nhận URL và giá trị tham số dữ liệu.

Trong ví dụ dưới đây, chúng ta đăng một số dữ liệu đến trang web httpbin.org qua phương thức POST và nhận phản hồi về cách dữ liệu được đăng.

Ví dụ

import requests
in_values = {'username': 'Jack', 'password': 'Hello'}
res = requests.post('https://httpbin.org/post', data=in_values)
print(res.text)

Kết quả

Chạy mã trên cho kết quả sau:

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "password": "Hello",
    "username": "Jack"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "28",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.22.0",
    "X-Amzn-Trace-Id": "Root=1-5ef75488-969f97a68bb72642b97b6d50"
  },
  "json": null,
  "origin": "122.xxx.yy.zzz",
  "url": "https://httpbin.org/post"
}