Python:
การดาวน์โหลดหน้าเว็บ
วิธีการ:
เราจะใช้ไลบรารี requests
ของ Python หากคุณยังไม่มีไลบรารีนี้ สามารถติดตั้งได้ด้วยการใช้คำสั่ง pip install requests
นี่เป็นตัวอย่างเบื้องต้น:
import requests
url = 'https://www.example.com'
response = requests.get(url)
if response.ok:
html_content = response.text
print(html_content)
else:
print("Failed to retrieve the webpage")
เมื่อสคริปต์นี้ทำงาน หากสำเร็จ คุณจะเห็นเนื้อหา HTML ของ “https://www.example.com” ถูกพิมพ์ออกมาในคอนโซลของคุณ
การศึกษาลึก:
ก่อนหน้า requests
, Python มี urllib
มันยังคงมีอยู่, แต่ requests
ได้รับความนิยมมากขึ้นด้วยอินเตอร์เฟซที่ใช้งานง่ายและเป็นมิตรกับผู้ใช้ โมดูล requests
ถูกเปิดตัวในปี 2011 โดย Kenneth Reitz และตั้งแต่นั้นมาก็ได้กลายเป็นมาตรฐานสำหรับ HTTP ใน Python ไม่เพียงเท่านั้น – requests
ยังมีความแข็งแกร่งด้วยคุณสมบัติอย่างออบเจกต์ของ Session, การประกันคุกกี้อย่างต่อเนื่อง, และการจัดการใบรับรอง SSL อัตโนมัติ
มีทางเลือกอื่นเช่น http.client
, ซึ่งอยู่ในระดับต่ำกว่า requests
, และไลบรารีภายนอกเช่น aiohttp
สำหรับการปฏิบัติการแบบ async ไม่ว่าคุณจะเลือกใช้ตัวไหน, ไลบรารีเหล่านี้จะทำงานกับเว็บเซิร์ฟเวอร์, ส่งคำขอ HTTP และจัดการกับการตอบสนอง
เมื่อดาวน์โหลดเพจ, สิ่งสำคัญคือต้องพิจารณาถึงกฎทางด้านธรรมเนียม: ให้เคารพไฟล์ robots.txt
เพื่อทราบความอนุญาตของคุณ, และไม่ควรทำการร้องขอเร็วเกินไป - ให้ชะลอคำขอของคุณลง นอกจากนี้, จงตระหนักว่าเว็บเพจอาจดึงเนื้อหาแบบไดนามิกด้วย JavaScript ซึ่งไม่สามารถจับได้ด้วยการร้องขอ HTTP แบบง่าย
ดูเพิ่มเติม:
- คู่มือการใช้งาน
requests
: https://requests.readthedocs.io/en/master/ - ข้อมูลเกี่ยวกับ
urllib
: https://docs.python.org/3/library/urllib.html - บทนำของ
robots.txt
: https://www.robotstxt.org aiohttp
สำหรับการร้องขอเว็บแบบ async: https://docs.aiohttp.org/en/stable/