1.一般请求:
<pre name="code" class="python"> req = urllib2.Request("http://www.baidu.com")
fd = urllib2.urlopen(req)
while 1:
data = fd.read(1024)
if not len(data):
break
print data
2. 认证 (TBD)
3. 表单:
GET:1) 与一般请求相似,手工把GET参数添加到URL中,<span style="font-family: Arial, Helvetica, sans-serif;">手工构造URL时空格应该换成“+”。 构造的过程可能非常的复杂。
req = urllib2.Request("http://www.freebsd.org/cgi/search.cgi?words=python+socket&max=25&source=www")
fd = urllib2.urlopen(req)
2) 使用urllib.urlencode()方法
def addGETdata(url, data):
return url + '?' + urllib.urlencode(data)
def get_method_in_form2():
#param
zipcode = [("words", "python socket"), ("max", "25") ,("source", "www")]
url = addGETdata('http://www.freebsd.org/cgi/search.cgi', zipcode)
req = urllib2.Request(url)
fd = urllib2.urlopen(req)
POST:一样是使用urllib.urlencode()方法对参数编码,urllib2.urlopen()方法发送请求,只是参数不是放在URL中, 而是做为urlopen的第二个参数
zipcode = [("query", "10001")]
data = urllib.urlencode(zipcode)
url = 'http://www.wunderground.com/cgi-bin/findweather/getForecast'
req = urllib2.Request(url)
fd = urllib2.urlopen(req, data)
4 错误处理 (TBD)