Python การเข้าถึงอินเทอร์เน็ตโดยใช้ Urllib.Request และ urlopen()

urllib คืออะไร?

urllib คือ Python โมดูลที่สามารถใช้สำหรับเปิด URL มันกำหนดฟังก์ชั่นและคลาสเพื่อช่วยในการดำเนินการ URL

ด้วยระบบเส้นทาง Python คุณยังสามารถเข้าถึงและดึงข้อมูลจากอินเทอร์เน็ตเช่น XML, HTML, JSON เป็นต้น คุณยังสามารถใช้ Python เพื่อทำงานกับข้อมูลนี้โดยตรง ในบทช่วยสอนนี้ เราจะมาดูกันว่าเราจะดึงข้อมูลจากเว็บได้อย่างไร ตัวอย่างเช่น เราใช้ URL ของวิดีโอ guru99 และเราจะเข้าถึง URL ของวิดีโอนี้โดยใช้ Python ตลอดจนพิมพ์ไฟล์ HTML ของ URL นี้

วิธีเปิด URL โดยใช้ Urllib

ก่อนที่เราจะรันโค้ดเพื่อเชื่อมต่อกับข้อมูลอินเทอร์เน็ต เราจำเป็นต้องนำเข้าคำสั่งสำหรับโมดูลไลบรารี URL หรือ "urllib"

เปิด URL โดยใช้ Urllib

  • นำเข้า urllib
  • กำหนดฟังก์ชันหลักของคุณ
  • ประกาศตัวแปร webUrl
  • จากนั้นเรียกใช้ฟังก์ชัน urlopen บนไลบรารี URL lib
  • URL ที่เรากำลังเปิดอยู่คือบทช่วยสอน guru99 บน youtube
  • ต่อไปเราจะพิมพ์โค้ดผลลัพธ์
  • รหัสผลลัพธ์จะถูกดึงออกมาโดยการเรียกใช้ฟังก์ชัน getcode บนตัวแปร webUrl ที่เราสร้างขึ้น
  • เราจะแปลงสิ่งนั้นเป็นสตริงเพื่อให้สามารถต่อเข้ากับสตริง “โค้ดผลลัพธ์” ของเราได้
  • นี่จะเป็นรหัส HTTP ปกติ "200" ซึ่งบ่งชี้ว่าคำขอ http ได้รับการประมวลผลสำเร็จ

วิธีรับ URL ของรูปแบบไฟล์ HTML Python

คุณยังสามารถอ่านไฟล์ HTML ได้โดยใช้ "ฟังก์ชั่นอ่าน" ใน Pythonและเมื่อคุณเรียกใช้โค้ด ไฟล์ HTML จะปรากฏในคอนโซล

URL ของรูปแบบไฟล์ HTML ในรูปแบบ Python

  • เรียกใช้ฟังก์ชันการอ่านบนตัวแปร webURL
  • ตัวแปร Read ช่วยให้สามารถอ่านเนื้อหาของไฟล์ข้อมูลได้
  • อ่านเนื้อหาทั้งหมดของ URL ลงในตัวแปรที่เรียกว่า data
  • เรียกใช้โค้ด- มันจะพิมพ์ข้อมูลในรูปแบบ HTML

นี่คือรหัสที่สมบูรณ์

Python 2 ตัวอย่าง

#  
# read the data from the URL and print it
#
import urllib2

def main():
# open a connection to a URL using urllib2
   webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com")
  
#get the result code and print it
   print "result code: " + str(webUrl.getcode()) 
  
# read the data from the URL and print it
   data = webUrl.read()
   print data
 
if __name__ == "__main__":
  main()

Python 3 ตัวอย่าง

#
# read the data from the URL and print it
#
import urllib.request
# open a connection to a URL using urllib
webUrl  = urllib.request.urlopen('https://www.youtube.com/user/guru99com')

#get the result code and print it
print ("result code: " + str(webUrl.getcode()))

# read the data from the URL and print it
data = webUrl.read()
print (data)