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