urllib2使用总结
来源:互联网 发布:java电脑版86安装包 编辑:程序博客网 时间:2024/05/01 04:23
urllib2是Python的一个获取URLs的组件。他以urlopen函数的形式提供了一个非常简单的接口,具有利用不同协议获取URLs的能力,同样提供了一个比较复杂的接口来处理一般情况。
例2:打开指定页面并打印html页面和一些额外的信息,采用了urllib2最一般的形式:i、urllib2.Request()的功能是构造一个请求信息,返回的req就是一个构造好的请求。ii、urllib2.urlopen()的功能是发送刚刚构造好的请求req,并返回一个文件类的对象response,包括了所有的返回信息。iii、通过response.read()可以读取到response里面的html,通过response.info()可以读到一些额外的信息。
urllib2支持获取不同格式的URLs例如:ftp、Gopher等,并利用它们相关网络协议进行获取。
urllib2可用来完成以下功能:
1.获取Web页面
2.在远程http服务器上验证
3.额外数据请求,如表单提交(GET和POST)
4.异常处理
5.非http协议通信(如FTP)
1.获取Web页面
例1:打印html页面,下面是最简单的形式
- #!/usr/bin/env python
- import urllib2
- response = urllib2.urlopen('http://www.google.com')
- html = response.read()
- print html
- #!/usr/bin/env python
- import sys, urllib2
- req = urllib2.Request(sys.argv[1])
- response = urllib2.urlopen(req)
- print "Retrieved", response.geturl()
- info = response.info()
- for key, value in info.items():
- print "%s = %s" % (key, value)
- html = response.read()
- print html
2.在远程http服务器上验证
有些站点需要http认证后才能访问。最普通的认证类型是基本认证,由客户端向服务器器发送一个用户名和密码。http认证一般显示一个弹出窗口来询问用户名和密码,这与基于cookie和form的认证不同。
下面是一个例子,首先定义了一个扩展urllib2.HTTPPasswordMgr的类,允许在需要的时候询问用户名和密码,然后调用build_opener()指定一些额外处理,其实在urllib2.urlopen()内部调用了build_opener(),并且不带任何参数。所以在访问常规网站的时候urllib2.urlopen()等于opener.open()返回都一样。
- #!/usr/bin/env python
- import sys, urllib2, getpass
- class BasePassword(urllib2.HTTPPasswordMgr):
- def find_user_password(self, realm, authurl):
- ret = urllib2.HTTPPasswordMgr.find_user_password(self, realm, authuri)
- if ret[0] == None and ret[1] == None:
- sys.stdout.write("Login reauired for %s at %sn" % (realm, authurl))
- sys.stdout.write("Username: ")
- username = sys.stdin.readline().rstrip()
- password = getpass.getpass().rstrip()
- return (username, password)
- else:
- return ret
- req = urllib2.Request(sys.argv[1])
- opener = urllib2.build_opener(urllib2.HTTPBasicAuthHandler(BasePassword()))
- response = opener.open(req)
- print response.read()
3.表单提交(GET和POST)
有两种方法提交表单数据:GET和POST,取决于HTML文档中
0 0
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- urllib2使用总结
- Python:urllib2使用总结
- python之urllib2使用总结
- urllib2 使用
- urllib2使用
- Python中urllib2总结
- python中urllib2 总结
- Python中urllib2总结
- Python中urllib2总结
- urllib2基本使用实例
- python urllib2使用细节
- 剑指Offer——二维数组查找
- Content Comment Design
- 彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题(转)
- 通过sqli-labs学习sql注入——基础挑战之less1-10
- fragment 里面 内嵌 fragment
- urllib2使用总结
- hdfs的基本原理和基本操作总结
- Bochs虚拟机debug指令
- mvn install时Premature end of Content-Length delimited message body错误
- 免费的论文查重网站
- Jade进阶使用
- c++多个源文件共用一个全局变量(extern 的用法)(
- SaltStack
- 关于js的函数重载的问题