urllib模块

urlopen方法

User-agent

from urllib.request import urlopen
url = 'http://www.bing.com'

response = urlopen(url)

with response:
    print(type(response))
    print(response.status,response.reason)
    print(response.geturl())
print(response.closed)

urllib.parse模块

从运行结果来看冒号,斜杆,&,等号,问号等符号全部被编码,%之后实际上是单字节十六进制表示的值.

一般来说url中的地址部分,一般不需要使用中文路径,但是参数部分,不管GET还是POST方法,提交的数据中,可能有斜杠,等号,问号,等符号,这样这些数字符表示数据,不表示元字符.如果直接发给服务器,就会导致接受方无法判断谁是元字符,谁是数据了.为了安全,一般会将数据部分的字符做url编码,这样就不会有歧义了.后来可以传送中文,同样会做编码,一般先按照字符集encoding要求转换成字节序列,每一个字节对应的十六进制字符串加上百分号即可.

# urlencode函数第一参数要求是一个字典或者元组序列
from urllib import parse

d = {
    'id':1,
    'name':'tom',
    'url':'http://www.baidu.com'
}

u = parse.urlencode({'wd':''})
url = 'http://www.baidu.com?' + u

print(url)

提交方法method

最常用的HTTP交互数据的方法是GET,POST 



 

posted @ 2019-01-22 11:44  zhaijihai  阅读(118)  评论(0编辑  收藏  举报