itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()) A ['A', 'a', 'a'] B ['B', 'B', 'b'] C ['c', 'C'] A ['A', 'A', 'a'] ################################ Web operation ################################ from urllib import request req = request.Request('http://www.douban.com/') req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25') with request.urlopen(req) as f: print('Status:', f.status, f.reason) for k, v in f.getheaders(): print('%s: %s' % (k, v)) print('Data:', f.read().decode('utf-8')) from urllib import request, parse print('Login to weibo.cn...') email = input('Email: ') passwd = input('Password: '******'username', email), ('password', passwd), ('entry', 'mweibo'), ('client_id', ''), ('savestate', '1'), ('ec', ''),
''' request.urlopen(url,data=None,timeout=...) #Open the URL url, which can be either a string or a Request object ''' from urllib import request #模拟浏览器发送GET请求,就需要使用Request对象,通过往Request对象添加HTTP头,我们就可以把请求伪装成浏览器 req = request.Request('http://www.douban.com/') #创建request对象 req.add_header( 'User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25' ) with request.urlopen('http://www.douban.com/') as f: #请求内容和响应内容都包含在f中 data = f.read() print('status:', f.status, f.reason) #获取响应返回码和说明 for k, v in f.getheaders(): #获取响应头 print('%s:%s' % (k, v)) print('data:', data.decode('utf-8')) #对内容进行解码 # post请求:只需要把参数data以bytes形式传入 from urllib import request, parse print('Login to weibo.cn...') email = input('Email: ') passwd = input('Password: '******'username', email), ('password', passwd), ('entry', 'mweibo'), ('client_id', ''), ('savestate', '1'), ('ec', ''), ('pagerefer', 'https://passport.weibo.cn/signin/welcome?entry=mweibo&r=http%3A%2F%2Fm.weibo.cn%2F' )