首页 > 编程知识 正文

python课程设计小结,python函数的实训小结

时间:2023-05-06 12:32:32 阅读:50312 作者:1674

原文摘自网络,请参考网站:

主要缩小了原文,使之容易看。 请不要喷。 谢谢你。

5主要功能

request处理客户端的请求

响应处理服务端的响应

parse解析url

下一个讨论是request

urllib.request模块定义了打开URLs (通常为HTTP协议)的复杂操作(如basic、摘要模式验证、重定向和cookie )的方法和类。 该模块化仿真文件模块实现的将本地文件路径更改为远程url。 因此,函数返回类文件对象(file-like object )

urllib.request.urlopen(URL,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context

url可以是字符串形式或Request对象

如果data参数有值,则在post模式下响应。 否则,缺省情况下进入GET模式

urllib.request模块使用HTTP/1.1的无连接状态协议

5.2 urlopen ) )函数返回类文件对象,并提供以下内置方法:

read ()、readline、readlines ()、fileno ()、close () )的方法与文件对象使用的方法完全相同

info ()返回表示从远程服务器返回的标头信息的httplib.HTTPMessage对象

返回getcode(:http状态代码。 (详情请参阅https://tools.IETF.org/html/RFC 7231 # section-6 )

对于http请求:

1xx (信息) :请求已收到。 正在进行中

2xx (安全) :请求接收成功、分析和完成

3xx (重定向) :需要重定向

4xx (客户端) :客户端问题,请求中存在语法错误,找不到网址

5xx (服务器错误) :服务器问题

geturl () :返回请求的url

5.3 urllib2介绍

与urllib相比,显著差异如下:

1 ) urllib2可以接受请求类的实例以设置URL请求的headers,urllib只能接受URL。 也就是说,使用urllib时不能伪装用户代理字符串等。

2 ) urllib为encode发送的data提供urlencode方法,但在urllib2中不提供。 因此,urllib经常和urllib2一起使用。

2:urllib2的常用方法

2.1 urllib2.urlopen

urlopen ) )是最简单的请求方法,可以打开url并返回类文件对象,然后使用该对象读取返回的内容

urllib2.urlopen(URL[,data][,timeout] ) )

参数:

url:可以是包含url的字符串或urllib2.request类的实例。

data:是编码的开机自检数据。 通常使用urllib.urlencode ()进行编码。

没有data参数时为GET请求,设定了data参数时为POST请求

timeout:是可选超时时间(以秒为单位),用于设置请求块的超时时间。 如果未设置,则使用仅对HTTP、HTTPS和FTP有效的全局缺省timeout参数

urlopen ) )返回的文件对象u,则支持以下常用方法:

u.read([nbytes] )读取nbytes个数据作为字节字符串

u.readline ()将一行文本作为字节字符串读取

u.readlines ()读取所有输入行并返回列表

u.close ) )关闭链接

u.getcode ) )返回整数形式的HTTP响应代码。 例如,成功返回200,如果找不到文件,则返回404

u.geturl ) )返回返回的数据的实际url,但考虑到会出现重定向问题

u.info ) )返回具有与url相关信息的映射对象。

对于HTTP,返回的服务器响应包含HTTP标头。

对于FTP,返回的标头包含“内容长度”。

对于本地文件,返回的标头包括" ‘content-length "和" content-type "字段。

注意:

类文件对象u在二进制模式下工作。 如果需要以文本形式处理响应数据,则必须使用codecs模块等

方式解码数据。

2.2 urllib2.request

新的请求实例

请求(URL [ data,headers[,origin_req_host,[unverifiable]]]] )

说明:

对于相对简单的请求,urlopen (的参数url表示url,但如果需要执行更复杂的操作,如更改HTTP标头,则可以创建Request实例并将其用作url参数

参数:

url:是url字符串。

data:是与url提交相关的数据。 例如,要开机自检的数据。 但是,请注意,指定data参数会将HTTP请求从“获取”更改为“开机自检”。

headers:是一个表示HTTP标头的键值映射,即包含要发送的header中包含的内容的词典。

origin_req_host:通常是发出请求的主机的名称。如果请求的是无法验证的url,则以下参数unverifiable将设置为TRUE : 通常不是用户直接输入的url。 例如,嵌入在加载图像的页面中的url

假设Request实例r,其重要方法是:

r.add_data(data )将数据添加到请求中。 如果请求是HTTP请求,则方法将更改为“‘post”。

data是提交给指定url的数据。 请注意,在此方法中,data将使用当前data替换,而不是跟随以前设置的数据。

r.add_header(key,val )将header信息添加到请求中。 key是标头名称,val是标头值,两个参数都是字符串。

r.addunredirectedheader(key,val )的角色基本相同,但不会添加到重定向请求中。

r.set_proxy(host,type )正在准备向服务器请求。 用主机替换原始主机,用type替换原始请求类型。

2.3异常处理

如果无法处理respons,则urlopen抛出urlerror

urllib2.URLError :

urllib2.HTTPError :

HTTPerror是在特殊情况下抛出HTTP URL的URLError的子类。

URL错误:

通常,抛出urlerror是因为没有网络连接(没有到特定服务器的连接),或者没有特定服务器。 在这种情况下,包含reason属性的异常以包含错误代码和文本错误消息的tuple格式抛出。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。