Apr 9, 2009

Python 网络应用

NOTE: 适用于 2.6。2.5 版本和此不同。
urllib Package 可以处理各种 url, 包括 http, ftp, file 等。
参见 HOWTO.
例子,下载 google 首页 mobile 版本
import urllib.parse
import urllib.request

url = 'http://www.google.com'
user_agent = 'BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105'

headers = { 'User-Agent' : user_agent }
req = urllib.request.Request(url, None, headers)
response = urllib.request.urlopen(req)
the_page = response.read()

file = open('google.html','wb')
file.write(the_page)
file.close()
查看一下 help(urllib.request.Request), 注意其中 urllib.request.Request 可以改变 User-Agent header,可以伪装成黑莓手机,另外如果不带data,使用 GET 命令,带了data,使用 POST 命令。

参见 url 说明, urlparse 会将 url 解释成各个部分。
Attribute Index Value Value if not present
scheme 0 URL scheme specifier empty string
netloc 1 Network location part empty string
path 2 Hierarchical path empty string
params 3 Parameters for last path element empty string
query 4 Query component empty string
fragment 5 Fragment identifier empty string
username
User name None
password
Password None
hostname
Host name (lower case) None
port
Port number as integer, if present None

0 comments: