แนะนำตัว
เราใช้ urllib.request โมดูลใน Python เพื่อเข้าถึงและเปิด URL ซึ่งส่วนใหญ่มักใช้โปรโตคอล HTTP
อินเทอร์เฟซที่ใช้นั้นง่ายมากสำหรับผู้เริ่มต้นใช้งานและเรียนรู้ มันใช้ urlopen ฟังก์ชันซึ่งสามารถดึง URL ต่างๆ โดยใช้โปรโตคอลต่างๆ ที่หลากหลาย
คุณจะได้รับความเข้าใจที่ดีขึ้นเกี่ยวกับสิ่งที่เรากำลังทำงานด้วย เมื่อเราเริ่มใช้ฟังก์ชันต่างๆ มาเริ่มกันเลย
เริ่มต้นใช้งาน
urllib ไลบรารี่มาพร้อมกับ Python ดังนั้น คุณไม่จำเป็นต้องติดตั้งแยกต่างหาก แต่ในกรณีที่คุณต้องการเพิ่มในสภาพแวดล้อมของคุณและคุณยังไม่มี คุณสามารถติดตั้งโดยใช้ pip package manger
เปิดเทอร์มินัลของคุณและใช้รหัสด้านล่าง
pip install urllib
เมื่อคุณติดตั้งแล้ว คุณสามารถนำเข้าโมดูลที่เหมาะสมและเริ่มเขียนสคริปต์ของคุณได้
กำลังตรวจสอบ urllib.request
เรามักใช้ urllib.request ในการเปิดและอ่านข้อมูลหรือซอร์สโค้ดของหน้า สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณพยายามดึงข้อมูลจาก API ตัวอย่างเช่น
import urllib.request request_url = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')
บรรทัดของโค้ดด้านบนจะเปิด joke api และอ่านข้อมูล
สมมติว่าคุณต้องการพิมพ์เนื้อหา คุณสามารถใช้ −
print(request_url.read())
หมายเหตุ − สิ่งนี้จะพิมพ์ค่าในรูปแบบไบต์ หากคุณต้องการข้อความธรรมดา ให้ใช้ฟังก์ชันถอดรหัส
print(request_url.read().decode())
คุณยังบันทึกข้อมูลจาก API แล้วแยกวิเคราะห์ในภายหลังโดยใช้ RegEx เพื่อรับเฉพาะข้อมูลที่จำเป็น
ตัวอย่าง
import urllib.request data = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten') data = data.read().decode() print(data) file = open("content.txt", "w+") file.write(data) file.close()
หมายเหตุ − คุณสามารถเข้าถึง URL ด้วยโปรโตคอลต่างๆ รวมถึง FTP, HTTPS เป็นต้น urlopen ทำงานในลักษณะเดียวกันสำหรับโปรโตคอลที่แตกต่างกันทั้งหมด
ส่งข้อมูลไปยัง URL
หากคุณกำลังทำงานกับ Common Gateway Interface คุณอาจต้องการส่งข้อมูลไปยัง URL เช่นเดียวกับการทำงานกับ HTTP โดยจะส่งคำขอ POST ออกไป
คุณสามารถทำได้โดยใช้ urllib.request พร้อมกับโมดูล urllib.parse
ให้เรานำเข้าโมดูลก่อน
ตัวอย่าง
import urllib.parse import urllib.request url = 'https://www.google.com/cgi-bin/register.cgi' values = {'name' : 'S Vijay Balaji', language' : 'Python' } data = urllib.parse.urlencode(values) data = data.encode('ascii') req = urllib.request.Request(url, data) with urllib.request.urlopen(req) as response: the_page = response.read()
จากนั้นควรพิมพ์ซอร์สโค้ดจาก URL ที่ให้มา
บทสรุป
โมดูล urllib.request มีประโยชน์มากเมื่อพิจารณาว่าเราสามารถดึงทรัพยากรอินเทอร์เน็ตและรับข้อมูลจากพวกเขาได้
มีประโยชน์เมื่อแยกวิเคราะห์ข้อมูลจาก API หรืออ่านซอร์สโค้ดของหน้าเว็บเพื่อขูดเนื้อหา
โครงการที่ใช้ urllib.request เพื่อดึงข้อมูลจาก API ต่างๆ - https://github.com/SVijayB/Steam_WebScraper
มีฟังก์ชันอื่นๆ อีกมากมายจากโมดูล urllib.request หากคุณสงสัยและต้องการเรียนรู้เพิ่มเติม โปรดดูเอกสารอย่างเป็นทางการที่ https://docs.python.org/3/library/urllib.request.html