使用Python的urllib.request模組訪問網際網路


介紹

我們使用Python中的**urllib.request**模組來訪問和開啟URL,這些URL通常使用HTTP協議。

該介面對於初學者來說也非常簡單易用;它使用**urlopen**函式,可以使用各種不同的協議獲取各種URL。

當我們開始使用它的各種功能時,您將更好地理解我們正在處理的內容。那麼,讓我們開始吧。

開始

**urllib**庫與Python一起打包提供。因此,您無需單獨安裝它,但如果您想將其新增到您的環境中並且您還沒有它,您可以使用pip包管理器安裝它。

啟動您的終端並使用以下程式碼:

pip install urllib

安裝完成後,您可以匯入正確的模組並開始編寫您的指令碼。

檢視urllib.request

我們最常使用urllib.request來開啟和讀取資料或頁面的原始碼。如果您嘗試從API檢索資料,這將特別有用。例如:

import urllib.request
request_url = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')

以上程式碼行將開啟笑話API並讀取其資料。

假設您想列印其內容,您可以使用:

print(request_url.read())

**注意** - 這將以位元組格式打印出值。如果您想要純文字,請使用decode函式。

print(request_url.read().decode())

您甚至可以儲存來自API的資料,然後稍後使用正則表示式解析它以僅獲取必要的資料。

示例

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傳送資料

如果您正在使用公共閘道器介面,您可能希望向URL傳送資料。這與HTTP傳送POST請求的方式類似。

您可以使用urllib.request和urllib.parse模組來實現此目的。

讓我們首先匯入模組。

示例

import urllib.parse
import urllib.request
url = 'http://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.club.tw/3/library/urllib.request.html

更新於:2021年2月11日

451 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告