首页 > 代码库 > Python实践之网络编程1-简单的网络请求程序
Python实践之网络编程1-简单的网络请求程序
在了解python基础的语法基础上,就可以自由的去组合出自己需要各类高级功能。
由于python语言的特性,各类功能的实现都会非常快捷的。
网络变成就是python具备的高级特性之一。
需要进行网络编程首先需要了解几个模块urllib和urllib2
1.简单的访问请求
import sys,urllib,urllib2url=input("please input the url:")url = "http://mail.126.com"#发起请求req = urllib2.Request(url)fd = urllib2.urlopen(req)#输出结果#print fd.read()print ("URL Retrieved:",fd.geturl())info = fd.info()for key, value in info.items(): print "%s = %s" % (key,value)while True: data = fd.read(1024) if not len(data): break #print data
2.简单的get请求
#构造get参数#zipcode = sys.argv[1]wd = input("search word:")data = urllib.urlencode([(‘wd‘,wd)])#构造url 拼接请求参数url= "http://www.baidu.com"url = url + "?" + dataprint ‘ursing url‘, url#构造request 并请求req = urllib2.Request(url)fd = urllib2.urlopen(req)#读取相应结果while True: data = fd.read(1024) if not len(data): break #sys.stdout.write(data) print data
3.简单的post请求
和get请求最大的差别其实就是将请求参数放到了请求体中,而不是拼接到url中
import sys,urllib,urllib2#构造参数#zipcode = sys.argv[1]wd = input("search word:")data = urllib.urlencode([(‘wd‘,wd)])#构造url 不需要将参数拼接到url中url= "http://www.baidu.com"print ‘ursing url‘, url#构造request 只需要将参数放到urlopen的第二个参数里req = urllib2.Request(url)fd = urllib2.urlopen(req,data)#读取相应结果while True: data = fd.read(1024) if not len(data): break #sys.stdout.write(data) print data
4.登陆验证功能
等登陆验证有很多种方式,最常见的是post表单或者cookie形式的登陆验证。此类形式的的验证和post请求可能关系更加密切。
这里是最基本的http验证,由客户端向服务器端发送用户名密码。形式上一般会弹出一个登陆窗口
import sys,urllib,urllib2,getpass#定义TerminalPwd类扩展HTTPPasswordMgr,允许在需要的时候询问操作员输入密码class TerminalPwd(urllib2.HTTPPasswordMgr): def find_user_password(self,realm,authuri): retval = urllib2.HTTPPasswordMgr.find_user_password(self,realm,authuri) if retval[0] == None and retval[1] == None: #didn‘t find it in stored values username = input("Login required,please input username:") password = input("please input password:") return(username,password) else: return retvalurl = "http://home.asiainfo.com/"req = urllib2.Request(url)#需要加载额外的处理时需要使用opener,比如此处需要支持认证处理#如果需要认证,会自动调用TerminalPwd里面的函数,如果不需要进一步检查和普通的请求一样opener = urllib2.build_opener(urllib2.HTTPBasicAuthHandler(TerminalPwd()))#请求fd = opener.open(req)print ("URL Retrieved:",fd.geturl())info = fd.info()for key, value in info.items(): print "%s = %s" % (key,value)
Python实践之网络编程1-简单的网络请求程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。