Integrera med API:er
Anslut era botar till externa API:er för att berika data, utlösa åtgärder eller interagera med andra tjänster.
Integrera med API:er är en gratis lektion i Webbskrapning och botutveckling på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Webbskrapning och botutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Webbskrapning och botutveckling innehåller totalt 4 lektioner.
Bottar och API:er: en kraftfull kombination
Ni har lärt er att automatisera webbläsarinteraktioner och samla in data från webbsidor. Men vad gör ni om ni behöver strukturerad data eller vill utlösa åtgärder i en annan tjänst?
Det är här API:er (Application Programming Interfaces) kommer in! API:er ger boten ett direkt och strukturerat sätt att kommunicera med andra programvarusystem.
API:er jämfört med web scraping
Web scraping innebär att HTML från webbsidor tolkas, medan API:er erbjuder data i ett format som är lättare för maskiner att läsa, vanligtvis JSON eller XML.
- Web scraping: Bäst för offentliga data på webbplatser utan API:er eller för komplexa interaktioner med användargränssnitt.
- API-integrering: Idealisk för strukturerad data, för att utföra åtgärder, till exempel skapa ett inlägg, och när ett API uttryckligen tillhandahålls.
Ofta kombinerar de mest kraftfulla bottarna båda metoderna!
API-grunder: endpoints och metoder
API:er nås via endpoints, som är specifika URL:er. Ni interagerar med dem genom standardiserade HTTP-metoder:
- GET: För att hämta data, till exempel läsa ett inlägg.
- POST: För att skicka nya data, till exempel skapa ett inlägg.
- PUT/PATCH: För att uppdatera befintliga data.
- DELETE: För att ta bort data.
För bottar är GET och POST vanligast.
Skicka en enkel GET-begäran
Vi använder Pythons bibliotek requests för att hämta data från ett offentligt test-API. Vi använder jsonplaceholder.typicode.com, som tillhandahåller exempeldata.
Prova att köra det här exemplet:
import requests
def main():
api_url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(api_url)
print(f"Status Code: {response.status_code}")
print(response.text)
if __name__ == "__main__":
main()Tolka JSON-svar
API:er returnerar vanligtvis data i formatet JSON (JavaScript Object Notation). Det är ett lättviktigt och människoläsbart format för datautbyte.
Biblioteket requests kan automatiskt tolka JSON åt er och omvandla det till en Python-ordlista. Vi extraherar specifika fält från föregående exempel.
import requests
import json
def main():
api_url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(api_url)
if response.status_code == 200:
todo_item = response.json() # Parse JSON into a Python dict
print(f"User ID: {todo_item['userId']}")
print(f"Title: {todo_item['title']}")
print(f"Completed: {todo_item['completed']}")
else:
print("Failed to fetch data.")
if __name__ == "__main__":
main()Grundläggande begrepp inom API-autentisering
Många API:er kräver autentisering för att säkerställa att endast behöriga användare eller bottar kan komma åt deras data eller tjänster. Vanliga metoder är:
- API-nycklar: En unik sträng som skickas med varje begäran.
- Tokens: Skapas ofta efter en inloggning och är giltiga under en viss period.
- OAuth: En mer komplex standard för säker delegering av åtkomst.
För enkla bottar används ofta API-nycklar.
Använd API-nycklar i begäranden
API-nycklar skickas vanligtvis som en frågeparameter i URL:en eller som en HTTP-header. requests gör detta enkelt med argumentet params.
Det här exemplet visar hur du skickar en nyckel (med ett fiktivt API i demonstrationssyfte).
import requests
def main():
# This is a placeholder for demonstration.
# In a real scenario, use a valid API key.
api_key = "YOUR_DUMMY_API_KEY_HERE"
search_term = "bot automation"
# Fictional API endpoint requiring a key
api_url = "https://api.example.com/search"
params = {
"q": search_term,
"apiKey": api_key # API key as a query parameter
}
response = requests.get(api_url, params=params)
print(f"Request URL: {response.url}")
print(f"Status Code: {response.status_code}")
# In a real app, you'd process response.json()
if __name__ == "__main__":
main()Skicka data med POST-begäranden
Om din bot behöver skicka data, till exempel skapa en ny post eller uppdatera information, använder du en POST-begäran. Datainnehållet skickas vanligtvis i begärans body.
requests hanterar automatiskt sändning av JSON-data i bodyn med parametern json.
import requests
import json
def main():
api_url = "https://jsonplaceholder.typicode.com/posts"
new_post_data = {
"title": "Bot-Generated Post",
"body": "This is content created by our bot!",
"userId": 1
}
# The 'json' parameter automatically sets Content-Type
response = requests.post(api_url, json=new_post_data)
print(f"Status Code: {response.status_code}")
if response.status_code == 201: # 201 Created is common for successful POST
print("Post created successfully!")
print(response.json()) # API returns the created item
else:
print("Failed to create post.")
print(response.text)
if __name__ == "__main__":
main()Robust felhantering för API:er
API-anrop kan misslyckas på grund av nätverksproblem, felaktiga begäranden eller serverfel. Din bot bör hantera detta på ett smidigt sätt.
- Kontrollera
response.status_code(till exempel200för OK,404för Hittades inte och500för serverfel). - Använd
response.raise_for_status()för att automatiskt utlösa ettHTTPErrorvid felaktiga svar. - Omge anropen med
try-except-block för att fånga nätverksrelaterade fel.
import requests
def main():
# Intentional bad URL to show error handling
api_url = "https://jsonplaceholder.typicode.com/nonexistent_endpoint"
try:
response = requests.get(api_url, timeout=5) # Set a timeout
response.raise_for_status() # Raises HTTPError for 4xx/5xx responses
print(f"Status Code: {response.status_code}")
print("Successfully fetched data.")
except requests.exceptions.HTTPError as err:
print(f"HTTP Error occurred: {err}")
print(f"Status Code: {response.status_code}")
except requests.exceptions.ConnectionError as err:
print(f"Connection Error occurred: {err}")
except requests.exceptions.Timeout as err:
print(f"Timeout Error occurred: {err}")
except requests.exceptions.RequestException as err:
print(f"An unexpected error occurred: {err}")
if __name__ == "__main__":
main()Snabbtest: API-interaktion
Vilka av följande är vanliga sätt för botar att interagera med API:er?
Sammanfattning och nästa steg
Bra jobbat! Du har lärt dig att integrera dina botar med API:er:
- API:er tillhandahåller strukturerade data och låter botar utlösa åtgärder.
- Du använder GET för att hämta data och POST för att skicka data.
- Pythons
requests-bibliotek förenklar API-anrop. - JSON är det vanligaste dataformatet och kan enkelt tolkas till Python-dictionaries.
- Autentisering, till exempel med API-nycklar, är avgörande för många API:er.
- Robust felhantering är viktigt för tillförlitlig drift av botar.
Genom att kombinera web scraping med API-integration kan dina botar utföra mer komplexa och kraftfulla arbetsflöden!
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Integrera med API:er” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Webbskrapning och botutveckling, inklusive ”Integrera med API:er”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Webbskrapning och botutveckling innehåller totalt 4 lektioner.
Vad lär jag mig i ”Integrera med API:er”?
Anslut era botar till externa API:er för att berika data, utlösa åtgärder eller interagera med andra tjänster. Ni övar på Webbskrapning och botutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Webbskrapning och botutveckling?
Du behöver inga förkunskaper. Utbildningen i Webbskrapning och botutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Integrera med API:er”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Webbskrapning och botutveckling-lektionen?
Ja. Varje Webbskrapning och botutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Hantera användarautentisering
- Simulera komplexa användarresor
- Integrera med API:er
- Hantera sessioner och cookies