TypeScript:
Hämta en webbsida
Hur man gör:
import axios from 'axios'; // För HTTP-begäranden
async function laddaNerWebbsida(url: string): Promise<string> {
try {
const response = await axios.get(url);
return response.data; // Webbsidans HTML som en sträng
} catch (error) {
throw new Error(`Kunde inte ladda ner sidan: ${error}`);
}
}
// Använd funktionen och skriv ut resultatet
(async () => {
const webbsida = await laddaNerWebbsida('https://www.exempel.se');
console.log(webbsida);
})();
Exempelutdata:
<!doctype html>
<html lang="sv">
...
</html>
Djupdykning:
Att hämta webbsidor är en vanlig uppgift som kan utföras med olika verktyg och bibliotek. Historiskt har verktyg som curl
och wget
använts i kommandotolkar. I TypeScript och JavaScript-världen är axios
, en populär HTTP-klient, och fetch
-API:et i moderna webbläsare, vanliga val.
Detaljerna i implementationen kan variera beroende på sidans struktur och skyddsmekanismer, som CORS (Cross-Origin Resource Sharing) eller CSRF-token (Cross-Site Request Forgery). För att hantera dynamiska webbsidor som används JavaScript kan ett huvudlöst webbläsarbibliotek som Puppeteer behövas.
Se även:
- Axios dokumentation: https://axios-http.com/docs/intro
- MDN web docs om
fetch
: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch - Puppeteer GitHub-sida: https://github.com/puppeteer/puppeteer