PowerShell:
การดาวน์โหลดหน้าเว็บ
วิธีการ:
นี่คือคาถาวิเศษสำหรับการเรียกดูเว็บเพจโดยใช้ PowerShell เราจะใช้ Invoke-WebRequest
# จับเนื้อหาของ example.com
$response = Invoke-WebRequest -Uri "http://example.com"
# นี่คือสิ่งที่คุณได้รับ
$response.Content
ตัวอย่างผลลัพธ์:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
<!-- และอื่นๆ -->
</head>
...
</html>
คุณอาจต้องการแค่ข้อความ, ไม่มีแท็ก HTML เราทำแบบนั้นได้ดังนี้:
# ขอแค่ข้อความเท่านั้น
$response.ParsedHtml.body.innerText
ภาพรวม
เมื่อก่อน PowerShell ไม่มี cmdlet Invoke-WebRequest
ที่ดีเยี่ยมนี้ นักพัฒนาจะใช้คลาส .NET System.Net.WebClient
หรือหันไปใช้เครื่องมือภายนอก ตอนนี้, ทุกอย่างถูกฝังมาใน PowerShell แล้ว, ทำให้งานของเราง่ายขึ้น
Invoke-WebRequest
เสนอมากกว่าแค่เนื้อหา หัวข้อ, สถานะ, และข้อมูลเซสชัน – ทุกอย่างมีหมด ถ้าคุณกำลังเล่นกับ API, คุณจะรัก Invoke-RestMethod
เป็นทางเลือกที่มุ่งเน้น
ภายใต้ประทุน, cmdlet เหล่านี้พึ่งพาคลาส .NET HttpClient ที่มีน้ำหนัก, ให้ความน่าเชื่อถือและฟังก์ชันการทำงานกว้างขวาง
และถ้าคุณกำลังเร่งรีบรอการดาวน์โหลดเว็บเพจนั้น Invoke-WebRequest
ยังรองรับการทำงานแบบอะซิงโครนัสด้วย อย่างไรก็ตาม, นั่นเป็นหัวข้อสำหรับอีกวันหนึ่ง
ดูเพิ่มเติม
- เอกสารของ Invoke-WebRequest
- ข้อมูลเพิ่มเติมเกี่ยวกับ Invoke-RestMethod สำหรับการโต้ตอบกับ API
- ที่เก็บ GitHub ของ PowerShell สำหรับนักพัฒนาที่รักการสำรวจใต้ฝา