การใช้งาน API ข้อมูลสาธารณะ
OpenWeatherMap, Wikipedia และ API ภาครัฐแบบสาธารณะ — ตัวอย่างการรวบรวมข้อมูลเชิงปฏิบัติ
การใช้งาน API ข้อมูลสาธารณะ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
ฝึกปฏิบัติกับส่วนติดต่อข้อมูลสาธารณะ
วิธีที่ดีที่สุดในการเรียนรู้การรวบรวมข้อมูลคือการเรียกใช้ส่วนติดต่อจริง บทเรียนนี้ใช้บริการที่ใช้งานง่ายสามบริการ:
- JSONPlaceholder — ส่วนติดต่อแบบ REST จำลองสำหรับฝึกฝน ไม่ต้องใช้คีย์
- OpenWeatherMap — ข้อมูลสภาพอากาศจริง ใช้คีย์ส่วนติดต่อฟรี
- Wikipedia API — เนื้อหาบทความและการค้นหา
JSONPlaceholder สำหรับฝึกปฏิบัติ
JSONPlaceholder ให้บริการโพสต์ ผู้ใช้ และความคิดเห็นจำลองโดยไม่ต้องยืนยันตัวตน จึงเหมาะอย่างยิ่งสำหรับทดสอบโค้ดเรียกใช้และแยกวิเคราะห์คำขอของคุณ
import requests
resp = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10)
resp.raise_for_status()
posts = resp.json()
print(len(posts), "posts")
print(posts[0]["title"])เวิร์กโฟลว์จากการตอบกลับสู่ DataFrame
เวิร์กโฟลว์มาตรฐานคือ ดึงข้อมูล JSON แล้วโหลดลงใน DataFrame โดยตรงเพื่อวิเคราะห์
import pandas as pd
posts = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10).json()
df = pd.DataFrame(posts)
print(df.head())
print(df["userId"].value_counts())OpenWeatherMap — การรับคีย์
OpenWeatherMap ต้องใช้คีย์ APIฟรีที่ส่งผ่านเป็นพารามิเตอร์ appid อย่าใส่คีย์ไว้ในโค้ด ให้ดึงคีย์จากตัวแปรสภาพแวดล้อม
import os
API_KEY = os.environ["OWM_API_KEY"] # set OWM_API_KEY in your shellOpenWeatherMap — พารามิเตอร์คำค้น
จุดปลายทางสภาพอากาศปัจจุบันรับ q (เมือง), appid (คีย์) และ units (เมตริก/อิมพีเรียล)
import requests, os
params = {
"q": "Istanbul",
"appid": os.environ["OWM_API_KEY"],
"units": "metric",
}
resp = requests.get("https://api.openweathermap.org/data/2.5/weather", params=params, timeout=10)
resp.raise_for_status()
data = resp.json()การดึงช่องข้อมูล JSON ที่ซ้อนกัน
การตอบกลับจากส่วนติดต่อจริงมักซ้อนกันหลายชั้น ให้เจาะเข้าไปด้วยคีย์ที่ต่อกัน และใช้ .get() พร้อมค่าเริ่มต้นสำหรับช่องข้อมูลที่อาจไม่มีอยู่
temp = data["main"]["temp"]
humidity = data["main"]["humidity"]
desc = data["weather"][0]["description"]
print(f"{temp} C, {humidity}% humidity, {desc}")การรวบรวมข้อมูลสภาพอากาศจากหลายเมือง
วนซ้ำผ่านรายชื่อเมือง แผ่ช่องข้อมูลที่ต้องการให้อยู่ในรายการของพจนานุกรม แล้วสร้าง DataFrame
cities = ["Istanbul", "London", "Tokyo"]
rows = []
for c in cities:
p = {"q": c, "appid": os.environ["OWM_API_KEY"], "units": "metric"}
d = requests.get("https://api.openweathermap.org/data/2.5/weather", params=p, timeout=10).json()
rows.append({"city": c, "temp": d["main"]["temp"], "desc": d["weather"][0]["description"]})
import pandas as pd
df = pd.DataFrame(rows)ส่วนติดต่อ Wikipedia API
Wikipedia API เปิดให้ค้นหาและเข้าถึงเนื้อหาบทความ โดยต้องระบุ action และ format=json รวมถึงส่วนหัว User-Agent ที่อธิบายโปรแกรมได้ชัดเจน
params = {
"action": "query",
"list": "search",
"srsearch": "machine learning",
"format": "json",
}
headers = {"User-Agent": "data-collector/1.0 (you@example.com)"}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, headers=headers, timeout=10)
results = resp.json()["query"]["search"]การดึงข้อความคัดย่อของบทความ
ใช้ prop=extracts ร่วมกับ exintro=True เพื่อดึงย่อหน้าเกริ่นนำของบทความ ซึ่งมีประโยชน์สำหรับสร้างชุดข้อมูลข้อความ
params = {
"action": "query",
"prop": "extracts",
"exintro": True,
"explaintext": True,
"titles": "Artificial intelligence",
"format": "json",
}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, timeout=10)
pages = resp.json()["query"]["pages"]
for pid, page in pages.items():
print(page["extract"][:300])การอ่านเอกสารของส่วนติดต่อข้อมูล
ส่วนติดต่อแต่ละแห่งมีรายละเอียดแตกต่างกัน ก่อนเขียนโค้ด ให้ศึกษาเอกสารเกี่ยวกับ URL พื้นฐาน พารามิเตอร์ที่จำเป็น วิธีการยืนยันตัวตน รูปแบบการตอบกลับ และขีดจำกัดอัตราการเรียกใช้
ทดสอบคำขอหนึ่งรายการแบบโต้ตอบ ตรวจสอบ resp.json() แล้วสร้างลูปรอบโครงสร้างจริง
การใช้ส่วนติดต่อข้อมูลอย่างมีความรับผิดชอบ
ส่วนติดต่อข้อมูลสาธารณะเป็นทรัพยากรที่ใช้ร่วมกัน โปรดใช้งานอย่างเคารพผู้อื่น:
- ส่ง
User-Agentที่ระบุโปรแกรมของคุณ - แคชผลลัพธ์ เพื่อไม่ต้องดึงข้อมูลเดิมซ้ำ
- เว้นช่วงระหว่างคำขอ และปฏิบัติตามขีดจำกัดอัตราการเรียกใช้
- อ่านและปฏิบัติตามข้อกำหนดการใช้งานของส่วนติดต่อแต่ละแห่ง
ตรวจสอบด่วน: ส่วนติดต่อสำหรับฝึกปฏิบัติ
คุณต้องการทดสอบโค้ดเรียกใช้และแยกวิเคราะห์คำขอ โดยไม่ต้องสมัครรับคีย์ส่วนติดต่อ
ทบทวน: ส่วนติดต่อข้อมูลสาธารณะ
คุณได้ฝึกการรวบรวมข้อมูลจากส่วนติดต่อจริงแล้ว:
- JSONPlaceholder สำหรับฝึกฝนโดยไม่ต้องยืนยันตัวตน
- OpenWeatherMap โดยใช้พารามิเตอร์
q,appid,unitsและคีย์จากสภาพแวดล้อม - Wikipedia API สำหรับค้นหาและดึงข้อความคัดย่อของบทความ
- เวิร์กโฟลว์จากการดึงข้อมูลสู่ DataFrame และวิธีเจาะเข้าไปใน JSON ที่ซ้อนกัน
- แนวทางการใช้งานอย่างมีความรับผิดชอบ: User-Agent การแคช ขีดจำกัดอัตราการเรียกใช้ และข้อกำหนดการใช้งาน
การรวบรวมข้อมูลเสร็จสมบูรณ์แล้ว ถัดไป: นิพจน์ทั่วไปสำหรับปัญญาประดิษฐ์ด้านข้อความ
คำถามที่พบบ่อย
บทเรียน “การใช้งาน API ข้อมูลสาธารณะ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การใช้งาน API ข้อมูลสาธารณะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การใช้งาน API ข้อมูลสาธารณะ”
OpenWeatherMap, Wikipedia และ API ภาครัฐแบบสาธารณะ — ตัวอย่างการรวบรวมข้อมูลเชิงปฏิบัติ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การใช้งาน API ข้อมูลสาธารณะ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน REST API สำหรับรวบรวมข้อมูล
- การแบ่งหน้าและรวบรวมชุดข้อมูลขนาดใหญ่
- การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ
- การใช้งาน API ข้อมูลสาธารณะ