0Pricing
Learn AI with Python · บทเรียน

พื้นฐาน REST API สำหรับรวบรวมข้อมูล

HTTP GET/POST ส่วนหัว การยืนยันตัวตน (คีย์ API, Bearer) และการแยกวิเคราะห์ JSON ด้วย requests

พื้นฐาน REST API สำหรับรวบรวมข้อมูล เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใด API จึงสำคัญต่อปัญญาประดิษฐ์

โมเดลจะดีได้เท่ากับข้อมูลที่ใช้เท่านั้น API บนเว็บช่วยให้คุณรวบรวมข้อมูลที่สดใหม่และมีโครงสร้างได้ตามต้องการ เช่น สภาพอากาศ ราคา โพสต์บนสื่อสังคมออนไลน์ และชุดข้อมูลสาธารณะ แทนที่จะพึ่งพาไฟล์แบบคงที่เพียงไฟล์เดียว

หลักสูตรนี้ใช้ภาษาไพธอนและไลบรารี requests ยอดนิยมเพื่อดึงและจัดเก็บข้อมูลดังกล่าว

REST API คืออะไร

REST APIเปิดให้เข้าถึงทรัพยากรผ่าน HTTP คุณส่งคำขอไปยัง URL (จุดปลายทาง) และได้รับข้อมูลกลับมา ซึ่งโดยปกติจะอยู่ในรูปแบบ JSON

วิธีการ HTTP หลักมีดังนี้:

  • GET — อ่านข้อมูล
  • POST — สร้างข้อมูล
  • PUT/PATCH — ปรับปรุงข้อมูล
  • DELETE — ลบข้อมูล

สำหรับการรวบรวมข้อมูล โดยส่วนใหญ่คุณจะใช้ GET

คำขอ GET แรก

requests.get(url)จะส่งคำขอ GET และส่งคืนอ็อบเจ็กต์ การตอบกลับ การตอบกลับจะเก็บรหัสสถานะ ส่วนหัว และเนื้อหาไว้

import requests

resp = requests.get("https://api.example.com/users")
print(resp.status_code)   # 200
print(resp.text[:200])    # raw body as a string

ตรวจสอบ response.status_code

รหัสสถานะบอกว่าคำขอสำเร็จหรือไม่:

  • 200 สำเร็จ
  • 301/302 เปลี่ยนเส้นทาง
  • 400 คำขอไม่ถูกต้อง
  • 401/403 มีปัญหาด้านการยืนยันตัวตน
  • 404 ไม่พบข้อมูล
  • 429 ถูกจำกัดอัตรา
  • 500 เซิร์ฟเวอร์เกิดข้อผิดพลาด
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

แยกวิเคราะห์ JSON ด้วย response.json()

API ส่วนใหญ่ส่งคืน JSON response.json()จะแยกวิเคราะห์เนื้อหาให้เป็นพจนานุกรมและรายการของไพธอนโดยอัตโนมัติ

อย่าแยกวิเคราะห์ JSON ด้วยตนเอง — .json()จะจัดการให้ และจะแจ้งข้อผิดพลาดที่ชัดเจนหากเนื้อหาไม่ใช่ JSON ที่ถูกต้อง

resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])

ส่งพารามิเตอร์คำค้นหาด้วย params

กรองและกำหนดค่าคำขอด้วย พารามิเตอร์คำค้นหา ส่งพจนานุกรมให้กับ params แล้ว requests จะสร้าง URL ให้คุณพร้อมจัดการการเข้ารหัส

ตัวอย่างนี้จะกลายเป็น ?city=London&units=metric ใน URL

params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())

การส่งส่วนหัว

ส่วนหัวใช้ส่งข้อมูลเมทาดาทา เช่น ประเภทเนื้อหา ตัวแทนผู้ใช้ หรือคีย์/โทเค็นของ API ส่งส่วนหัวเหล่านี้เป็นพจนานุกรมให้กับ headers

API จำนวนมากต้องใช้ส่วนหัว Authorization เพื่ออนุญาตให้เข้าถึงข้อมูล

headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())

raise_for_status() สำหรับโค้ดที่ทนทาน

แทนที่จะตรวจสอบรหัสด้วยตนเอง ให้เรียกใช้ resp.raise_for_status() ฟังก์ชันนี้จะทำให้เกิด HTTPError เมื่อได้รับการตอบกลับในช่วง 4xx หรือ 5xx ทำให้ความล้มเหลวถูกแจ้งอย่างชัดเจน

ครอบคำสั่งนี้ด้วย try/except เพื่อจัดการข้อผิดพลาดอย่างเหมาะสม

import requests

try:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    data = resp.json()
except requests.HTTPError as e:
    print("HTTP error:", e)
except requests.RequestException as e:
    print("Network error:", e)

กำหนดระยะหมดเวลาเสมอ

หากไม่มี timeout เซิร์ฟเวอร์ที่ค้างอาจทำให้สคริปต์หยุดรอไปตลอดกาล ควรส่งค่าไปด้วยเสมอ (หน่วยเป็นวินาที)

สำหรับลูปการรวบรวมข้อมูลที่เรียกใช้จุดปลายทางนับพันแห่ง การไม่มีระยะหมดเวลาเป็นสาเหตุที่พบบ่อยที่ทำให้งานหยุดค้าง

resp = requests.get(url, timeout=10)   # give up after 10 seconds

นำการเชื่อมต่อกลับมาใช้ใหม่ด้วย Session

requests.Sessionจะนำการเชื่อมต่อ TCP พื้นฐานกลับมาใช้ใหม่ระหว่างคำขอ และช่วยให้คุณกำหนดส่วนหัวเพียงครั้งเดียว สำหรับการเรียกไปยังโฮสต์เดิมหลายครั้ง วิธีนี้จะเร็วขึ้นมาก

import requests

session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})

for uid in [1, 2, 3]:
    resp = session.get(f"https://api.example.com/users/{uid}")
    print(resp.json()["name"])

session.close()

ตัวช่วยดึงข้อมูลที่เป็นระเบียบ

รวมรูปแบบนี้ไว้ในฟังก์ชันที่นำกลับมาใช้ใหม่ได้ โดยตั้งค่าเซสชัน ใช้ระยะหมดเวลา แจ้งข้อผิดพลาดเมื่อเกิดปัญหา และส่งคืน JSON ที่แยกวิเคราะห์แล้ว

คุณจะต่อยอดจากตัวช่วยนี้ในบทถัดไปสำหรับการแบ่งหน้าและการจัดเก็บข้อมูล

def fetch_json(session, url, params=None):
    resp = session.get(url, params=params, timeout=10)
    resp.raise_for_status()
    return resp.json()

ตรวจสอบอย่างรวดเร็ว: คำขอที่ทนทาน

คุณต้องการให้โค้ดทำให้เกิดข้อยกเว้นโดยอัตโนมัติเมื่อได้รับการตอบกลับ 404 หรือ 500

สรุป: พื้นฐาน REST API

ตอนนี้คุณสามารถรวบรวมข้อมูลผ่าน HTTP ได้แล้ว:

  • requests.get(url, params=..., headers=...) เพื่อส่งคำขอ
  • response.status_code และ raise_for_status() เพื่อตรวจหาความล้มเหลว
  • response.json() เพื่อแยกวิเคราะห์เนื้อหา
  • timeout เพื่อป้องกันการหยุดค้าง
  • requests.Session เพื่อนำการเชื่อมต่อและส่วนหัวกลับมาใช้ใหม่

บทถัดไป: การรวบรวมชุดข้อมูลที่ครอบคลุมหลายหน้า

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน REST API สำหรับรวบรวมข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน REST API สำหรับรวบรวมข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน REST API สำหรับรวบรวมข้อมูล”

HTTP GET/POST ส่วนหัว การยืนยันตัวตน (คีย์ API, Bearer) และการแยกวิเคราะห์ JSON ด้วย requests คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน REST API สำหรับรวบรวมข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน REST API สำหรับรวบรวมข้อมูล
  2. การแบ่งหน้าและรวบรวมชุดข้อมูลขนาดใหญ่
  3. การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ
  4. การใช้งาน API ข้อมูลสาธารณะ
← กลับไปที่ Learn AI with Python