python urllib2

来源:互联网 发布:批处理 base64源码 编辑:程序博客网 时间:2024/04/29 18:06

前提:使用的是python2.7。python3对urllib2做了改动。
官网链接:
https://docs.python.org/2/library/urllib2.html
++++++++++++++++++++++++++++++++++

1.) urlopen

urllib2.urlopen(url [,data [,timeout [,cafile [,capath [,cadefault [,context]]]]] )打开URL url,可以是一个字符串,也可以是一个Request对象。数据可以是指定发送到服务器的附加数据的字符串,或者 None如果不需要这样的数据。目前HTTP请求是唯一使用数据的请求; 提供数据参数时,HTTP请求将是POST而不是GET 。 数据应该是标准application / x-www-form-urlencoded格式的缓冲区 。该 urllib.urlencode()函数采用2元组的映射或序列,并以此格式返回字符串。urllib2模块发送包含Connection:close头的HTTP / 1.1请求 。可选的timeout参数指定阻塞操作的超时(以秒为单位),如连接尝试(如果未指定,将使用全局默认超时设置)。这实际上只适用于HTTP,HTTPS和FTP连接。如果指定了上下文,则它必须是ssl.SSLContext描述各种SSL选项的实例。看到HTTPSConnection更多的细节。可选的cafile和capath参数为HTTPS请求指定一组可信的CA证书。 cafile应指向包含一系列CA证书的单个文件,而capath应指向散列证书文件的目录。更多信息可以在这里找到 ssl.SSLContext.load_verify_locations()。该cadefault参数被忽略。这个函数返回一个类似文件的对象和三个附加的方法:    geturl() - 返回检索的资源的URL,通常用于确定是否遵循重定向    info()- 以mimetools.Message实例的形式返回页面的元信息,如标题(请参阅HTTP头的快速参考)    getcode() - 返回响应的HTTP状态码。    引发URLError错误。请注意,None如果没有处理程序处理请求,可能会返回(尽管默认安装的全局OpenerDirector使用UnknownHandler来确保永远不会发生这种情况)。另外,如果检测到代理设置(例如,当一个*_proxy 环境变量像http_proxy被设置), ProxyHandler是默认安装,并确保通过代理处理请求。在版本2.6中更改:添加了超时。在版本2.7.9中进行了更改:添加了cafile,capath,cadefault和context。

例子:

import urllib2url = "http://music.163.com/#/playlist?id=541112925"ua_headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"}request = urllib2.Request(url,headers = ua_headers)response = urllib2.urlopen(request)htmldata = response.read()print htmldata#返回响应码code =response.getcode()print code