一,urllib.parse 模块

是什么:这个是python的一个模块,可以直接拿过来使用
可以做什么:可以把前端浏览器发过来的内容进行一定的修改
由于python不像js直接运行在浏览器里面,使用浏览器的api,浏览器做了url的一些编解码操作,python这样其他的后端语言需要使用一定的方法才能对url进行操作,以便浏览器识别,所以才有这个模块的出现,就是封装了一系列url操作的模块
使用时需要导入对应的模块
from urllib import parse

unquote 解码方法

使用场景:
在web框架时,前端如果使用get请求并且输入中文,浏览器的url可以显示完整,但是传给后端的请求会造成url显示为乱码,所以需要后端python对其进行解码,python就提供了一个urllib.parse的编解码模块
image.png

  1. # unquote:可以将URL编码进行解码
  2. url = 'http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6'
  3. print(parse.unquote(url))
  4. """
  5. http://www.baidu.com/s?wd=中国梦
  6. """

与之对应的 quote 编码

  1. # quote 编码
  2. word = '中国梦'
  3. url = 'http://www.baidu.com/s?wd='+parse.quote(word)
  4. print(parse.quote(word))
  5. print(url)
  6. """
  7. %E4%B8%AD%E5%9B%BD%E6%A2%A6
  8. http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6
  9. """

urlencode() 返回字符串

将字典构形式的参数序列化为url编码后的字符串

  1. parmas = {
  2. 'wd':'123',
  3. 'page':20
  4. }
  5. parmas_str = parse.urlencode(parmas)
  6. print(parmas_str)
  7. """
  8. page=20&wd=123
  9. """

与之对应 parse_qs 方法

parse_qs()将url编码格式的字符串参数反序列化为字典类型

  1. parmas_str = 'page=20&wd=123'
  2. parmas = parse.parse_qs(parmas_str)
  3. print(parmas)
  4. """
  5. {'page': ['20'], 'wd': ['123']}
  6. """

urljoin()方法 是python拼接 url字符串

传递一个基础链接,根据基础链接可以将某一个不完整的链接拼接为一个完整链接

  1. base_url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
  2. sub_url = '/info/100861102'
  3. full_url = parse.urljoin(base_url,sub_url)
  4. print(full_url)

urlunparse() 改造url

可以修改url,给一些url必须参数,可以使用此方法把这些参数合并为一个url连接

  1. url_parmas = ('https', 'book.qidian.com', '/info/1004608738', '', 'wd=123&page=20', 'Catalog')
  2. result = parse.urlunparse(url_parmas)
  3. print(result)
  4. """
  5. https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog
  6. """

urlparse 方法 解析url内容

  1. url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
  2. """
  3. url:待解析的url
  4. scheme='':假如解析的url没有协议,可以设置默认的协议,如果url有协议,设置此参数无效
  5. allow_fragments=True:是否忽略锚点,默认为True表示不忽略,为False表示忽略
  6. """
  7. result = parse.urlparse(url=url,scheme='http',allow_fragments=True)
  8. print(result)
  9. print(result.scheme)
  10. """
  11. (scheme='https', netloc='book.qidian.com', path='/info/1004608738', params='', query='wd=123&page=20', fragment='Catalog')
  12. scheme:表示协议
  13. netloc:域名
  14. path:路径
  15. params:参数
  16. query:查询条件,一般都是get请求的url
  17. fragment:锚点,用于直接定位页
  18. 面的下拉位置,跳转到网页的指定位置
  19. """

参考连接:
https://www.jianshu.com/p/e7d87e1ed38c

二,time方法

time time方法

返回时间戳
time.time()

time strftime方法

返回可读的字符串
time.strftime(format[, t])

两者联系:

1,返回内容不同,一个是时间戳,一个是字符串
2,参数不同,一个不需要参数,一个需要格式的参数
3,两者可以互相转化