TypeScript:
การดาวน์โหลดหน้าเว็บ
วิธีการ:
คุณสามารถดาวน์โหลดเว็บเพจใน TypeScript โดยใช้ Node.js และไลบรารี node-fetch
นี่คือวิธีการ:
import fetch from 'node-fetch';
async function downloadWebPage(url: string): Promise<void> {
try {
const response = await fetch(url);
const body = await response.text();
console.log(body); // สิ่งนี้จะแสดงเนื้อหา HTML ไปยังคอนโซล
} catch (error) {
console.error('การดาวน์โหลดล้มเหลว:', error);
}
}
// ใช้ฟังก์ชั่น
downloadWebPage('https://example.com');
ตัวอย่างผลลัพธ์ (ตัดทอน):
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</html>
ลงลึกมากขึ้น
ในอดีต เนื้อหาเว็บถูกดาวน์โหลดผ่านเครื่องมือเช่น wget
หรือ curl
ในสภาพแวดล้อม command-line อย่างไรก็ตาม ในการเขียนโปรแกรมสมัยใหม่ เรามีไลบรารี เช่น node-fetch
, axios
, หรือ request
(ถูกลดการใช้งานแต่ยังคงใช้งานอยู่) ที่มีฟังก์ชันเพิ่มเติมและง่ายต่อการผสานเข้ากับแอพพลิเคชัน JavaScript/TypeScript ของเรา
เมื่อดาวน์โหลดเว็บเพจ มีมากกว่าเพียง HTML เท่านั้น CSS, JavaScript, ภาพและสินทรัพย์อื่นๆก็เป็นส่วนหนึ่งของข้อตกลง โดยปกติแล้ว HTML จะถูกเรียกใช้เป็นอันดับแรกและจากนั้นการประมวลผลหรือการดาวน์โหลดเพิ่มเติมจะขึ้นอยู่กับความต้องการจากหน้าเว็บ
ในแง่ของการดำเนินการ, node-fetch
นั้นใช้ API window.fetch สำหรับ Node.js โดยมันจะส่งคืนคำสัญญาที่ตอบสนองต่อการตอบกลับของคำขอ, ช่วยให้คุณสามารถได้รับสตรีมข้อความ (.text()), วัตถุ JSON (.json()), หรือแม้กระทั่งบัฟเฟอร์ (.buffer()) สำหรับข้อมูลทวิภาค
โปรดจำไว้ว่าสิทธิในการเก็บข้อมูลเว็บถูกกำหนดโดยไฟล์ robots.txt
ของเว็บไซต์และเงื่อนไขการให้บริการ ตรวจสอบเสมอว่าคุณได้รับอนุญาตให้เก็บข้อมูลจากไซต์นั้นๆ และคำนึงถึงข้อจำกัดเรื่องอัตราการเข้าเยี่ยมชมเพื่อหลีกเลี่ยงปัญหาทางกฎหมายหรือการถูกบล็อก IP ของคุณ