Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การเข้าถึงอินเทอร์เน็ตโดยใช้โมดูล urllib.request ใน Python


แนะนำตัว

เราใช้ 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