สามารถใช้ Python เพื่อเข้าถึงหน้าเว็บและโพสต์เนื้อหาไปยังหน้าเว็บได้ มีโมดูลต่างๆ เช่น httplib, urllib, httplib2 เป็นต้น แต่โมดูลคำขอนั้นง่ายที่สุดและสามารถใช้ในการเขียนโปรแกรมที่ง่ายกว่าแต่มีประสิทธิภาพซึ่งเกี่ยวข้องกับวิธี GET และ POST
วิธี GET
วิธี GET เป็นส่วนหนึ่งของโมดูลคำขอหลามซึ่งใช้เพื่อรับข้อมูลจาก URL ของเว็บ ในตัวอย่างด้านล่าง เราเข้าถึงเว็บไซต์ของเราและค้นหาคำตอบต่างๆ ผ่านวิธีการรับ เราได้รับการเข้ารหัส เวลาตอบสนอง ตลอดจนส่วนหัวและส่วนของร่างกาย
ตัวอย่าง
import requests req = requests.get('https://www.tutorialspoint.com/') # Page encoding e = req.encoding print("Encoding: ",e) # Response code s = req.status_code print("Response code: ",s) # Response Time t = req.elapsed print("Response Time: ",t) t = req.headers['Content-Type'] print("Header: ",t) z = req.text print("\nSome text from the web page:\n",z[0:200])
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Encoding: UTF-8 Response code: 200 Response Time: 0:00:00.103850 Header: text/html; charset=UTF-8 Some text from the web page:
วิธีการโพสต์
วิธี POST ใช้เพื่อส่งข้อมูลส่วนใหญ่ผ่านแบบฟอร์มไปยังเซิร์ฟเวอร์เพื่อสร้างหรืออัปเดตข้อมูลในเซิร์ฟเวอร์ โมดูลคำขอให้วิธีการโพสต์แก่เรา ซึ่งสามารถส่งข้อมูลโดยตรงโดยใช้ URL และค่าของพารามิเตอร์ข้อมูล
ในตัวอย่างด้านล่าง เราโพสต์ข้อมูลบางส่วนไปยังเว็บไซต์ httpbin.org ผ่านวิธีการโพสต์ และรับคำตอบเกี่ยวกับวิธีการโพสต์
ตัวอย่าง
import requests in_values = {'username':'Jack','password':'Hello'} res = requests.post('https://httpbin.org/post',data = in_values) print(res.text)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
{ "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" }