Python/Internet
外觀
< Python
與 Python 捆綁在一起的 urllib 模塊可用於 Web 交互。此模塊為 Web URL 提供類似文件的接口。
以字符串形式獲取頁面文本
[編輯]讀取網頁內容的示例
import urllib.request as urllib
pageText = urllib.urlopen("http://www.spam.org/eggs.html").read()
print(pageText)
逐行處理頁面文本:
import urllib.request as urllib
for line in urllib.urlopen("https://en.wikibooks.org/wiki/Python_Programming/Internet"):
print(line)
使用Get或Post方法:
import urllib.request as urllib
params = urllib.urlencode({"plato":1, "socrates":10, "sophokles":4, "arkhimedes":11})
# Using GET method
pageText = urllib.urlopen("http://international-philosophy.com/greece?%s" % params).read()
print(pageText)
# Using POST method
pageText = urllib.urlopen("http://international-philosophy.com/greece", params).read()
print(pageText)
下載文件
[編輯]要將互聯網上的頁面內容直接保存到文件中,您可以讀取它並將其作為字符串保存到文件對象中:
import urllib2
data = urllib2.urlopen("http://upload.wikimedia.org/wikibooks/en/9/91/Python_Programming.pdf", "pythonbook.pdf").read() # not recommended as if you are downloading 1gb+ file, will store all data in ram.
file = open('Python_Programming.pdf','wb')
file.write(data)
file.close()
這將從 這裏 下載文件並將其保存到硬盤上的文件「pythonbook.pdf」。
其他函數
[編輯]urllib 模塊包含其他函數,這些函數在編寫使用互聯網的程序時可能會有所幫助:
>>> plain_text = "This isn't suitable for putting in a URL"
>>> print(urllib.quote(plain_text))
This%20isn%27t%20suitable%20for%20putting%20in%20a%20URL
>>> print(urllib.quote_plus(plain_text))
This+isn%27t+suitable+for+putting+in+a+URL
上面描述的 urlencode 函數將鍵值對字典轉換為查詢字符串以傳遞給 URL,quote 和 quote_plus 函數對普通字符串進行編碼。quote_plus 函數使用加號表示空格,用於提交表單字段的數據。unquote 和 unquote_plus 函數執行相反的操作,將 urlencoded 文本轉換為純文本。
外部連結
[編輯]- urllib.request, docs.python.org
- HOWTO Fetch Internet Resources Using The urllib Package, docs.python.org
- urllib2 for Python 2, docs.python.org
- HOWTO Fetch Internet Resources Using urllib2 — Python 2.7, docs.python.org