python 网络编程httplib/httplib2/urllib/urllib2
来源:互联网 发布:知乎书店推荐 编辑:程序博客网 时间:2024/05/02 10:55
httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现。
http 比URL底层,2是1的加强版。
import
conn
conn.request('get',
print
conn.close()
HTTPConnection类的构造函数,表示一次与服务器之间的交互,即请求/响应。参数host表示服务器主机,如:http://www.csdn.net/;port为端口号,默认值为80; 参数strict的 默认值为false, 表示在无法解析服务器返回的状态行时( status line) (比较典型的状态行如: HTTP/1.0 200 OK ),是否抛BadStatusLine 异常;可选参数timeout 表示超时时间。
HTTPConnection.request
调用request 方法会向服务器发送一次请求,method 表示请求的方法,常用有方法有get 和post ;url 表示请求的资源的url ;body 表示提交到服务器的数据,必须是字符串(如果method 是”post” ,则可以把body 理解为html 表单中的数据);headers 表示请求的http 头。
urllib 和urllib2实现的功能大同小异,但urllib2要比urllib功能等各方面更高一个层次。目前的HTTP访问大部分都使用urllib2.
req
response
the_page
1、urllib2.Request()的功能是构造一个请求信息,返回的req就是一个构造好的请求
2、urllib2.urlopen()的功能是发送刚刚构造好的请求req,并返回一个文件类的对象response,包括了所有的返回信息。
3、通过response.read()可以读取到response里面的html,通过response.info()可以读到一些额外的信息。
urllib和urllib2的主要区别:
- urllib2可以接受Request对象为URL设置头信息,修改用户代理,设置cookie等, urllib只能接受一个普通的URL.
- urllib提供一些比较原始基础的方法而urllib2没有这些, 比如 urlencode
import urllibimport urllib2import httplibimport httplib2print "urllib start\n"url1 = "http://www.qq.com"#ff = urllib.urlopen(url, data, proxies, context)ff = urllib.urlopen(url1)print ff.headersprint ff.info()print "urllib2 start:\n"url = "http://www.csdn.net" # absolute address#urllib2.urlopen(url, data, timeout, cafile, capath, cadefault, context)f = urllib2.urlopen(url).info()print fprint "another method of urllib2\n"request = urllib2.Request(url)respon = urllib2.urlopen(request)print respon.info()print "httplib start:\n"conn1 = httplib.HTTPConnection("baidu.com")conn1.request('GET', '/')res = conn1.getresponse()header = res.getheaders()for line in header: print lineconn1.close()print "httplib2 start:\n"url2 = "http://mail.163.com"http = httplib2.Http()#http.request(uri, method, body, headers, redirections, connection_type)response, content = http.request(url2)print response
- python 网络编程httplib/httplib2/urllib/urllib2
- python urllib/urllib2/httplib/httplib2
- python中urllib, urllib2,urllib3, httplib,httplib2, request的区别
- Python urllib&urllib2&httplib
- python关于httplib、httplib2、urllib、urllib2、request、socket库,发送http请求
- Python 的 urllib,urllib2,httplib
- python基于http协议编程:httplib,urllib和urllib2
- python基于http协议编程:httplib,urllib和urllib2
- python基于http协议编程:httplib,urllib和urllib2
- python基于http协议编程:httplib,urllib和urllib2
- python基于http协议编程:httplib,urllib和urllib2
- Python网页抓取urllib,urllib2,httplib[1]
- Python网页抓取urllib,urllib2,httplib[2]
- Python网页抓取urllib,urllib2,httplib[3]
- Python网页抓取urllib,urllib2,httplib[1]
- Python网页抓取urllib,urllib2,httplib[2]
- Python网页抓取urllib,urllib2,httplib[3]
- python 网页抓取urllib,urllib2,httplib
- BlockingQueue定时或达到一定条数读取队列
- gitlab如何实现代码分支管理(只有思路没有解决方案)
- (POJ2676)Sudoku <简单数独问题>
- JVM调优:第一章基本概念
- Spring与Memcache整合(原创及优秀memcache整理)
- python 网络编程httplib/httplib2/urllib/urllib2
- 网站禁止某些IP访问
- prototype、__proto__与JavaScript的原型链继承
- C#面试题集锦
- vue项目中做编辑功能传递数据时遇到的问题
- python--简单爬虫
- Centos7安装robomongo
- spring-boot实现FastJson解析json数据
- 常见安全漏洞