urllib模块是python自带的,直接调用就好,用法如下:

 1 #处理get请求,不传data,则为get请求
2 import urllib
3 from urllib.request import urlopen
4 from urllib.parse import urlencode
5 url='http://127.0.0.1:1990/login'
6 data={"username":"admin","password":123456}
7 req_data=urlencode(data)#将字典类型的请求数据转变为url编码
8 res=urlopen(url+'?'+req_data)#通过urlopen方法访问拼接好的url
9 res=res.read().decode()#read()方法是读取返回数据内容,decode是转换返回数据的bytes格式为str
10 print(res)
11
12 #处理post请求,如果传了data,则为post请求
13 import urllib
14 from urllib.request import urlopen
15 from urllib.request import Request
16 from urllib.parse import urlencode
17 url='http://127.0.0.1:1990/login'
18 data={"username":"admin","password":123456}
19 data=urlencode(data)#将字典类型的请求数据转变为url编码
20 data=data.encode('ascii')#将url编码类型的请求数据转变为bytes类型
21 req_data=Request(url,data)#将url和请求数据处理为一个Request对象,供urlopen调用
22 with urlopen(req_data) as res:
23 res=res.read().decode()#read()方法是读取返回数据内容,decode是转换返回数据的bytes格式为str
24 print(res)

  相比较urllib模块,requests模块要简单很多,具体用法如下:

 1 # get请求
2 import requests
3 url='http://127.0.0.1:1990/login'
4 data={"username":"admin","password":123456}
5 res=requests.get(url,data)#直接用requests.get(url,data)即可,其中.get表示为get方法,不需要对字典类型的data进行处理
6 #res=res.text#text方法是获取到响应为一个str,也不需要对res进行转换等处理
7 res=res.json()#当返回的数据是json串的时候直接用.json即可将res转换成字典
8 print(res)
9
10 #post请求
11 import requests
12 url='http://127.0.0.1:1990/login'
13 data={"username":"admin","password":123456}
14 res=requests.post(url,data)#直接用requests.post(url,data)即可,其中.post表示为post方法,不需要对字典类型的data进行处理
15 #res=res.text#text方法是获取到响应为一个str,也不需要对res进行转换等处理
16 res=res.json()#当返回的数据是json串的时候直接用.json即可将res转换成字典
17 print(res)
18
19 #当传参格式要求为json串时
20 import requests
21 url='http://127.0.0.1:1990/login'
22 data={"username":"admin","password":123456}
23 res=requests.post(url,json=data)#只需要在这里指定data为json即可
24 #res=res.text#text方法是获取到响应为一个str,也不需要对res进行转换等处理
25 res=res.json()#当返回的数据是json串的时候直接用.json即可将res转换成字典
26 print(res)
27
28 #传参含cookie
29 import requests
30 url='http://127.0.0.1:1990/login'
31 data={"username":"admin","password":123456}
32 cookie={"sign":"123abc"}
33 res=requests.post(url,json=data,cookies=cookie)#只需要在这里指定cookies位cookie即可,headers,files等类似
34 res=res.json()
35 print(res)

  显而易见,requests模块要方便很多,建议大家使用requests模块。

python3 urllib和requests模块的更多相关文章

  1. python3 urllib及requests基本使用

    在python中,urllib是请求url连接的标准库,在python2中,分别有urllib和urllib,在python3中,整合成了一个,称谓urllib 1.urllib.request re ...

  2. Python 网络请求模块 urllib 、requests

    Python 给人的印象是抓取网页非常方便,提供这种生产力的,主要依靠的就是 urllib.requests这两个模块. urlib 介绍 urllib.request 提供了一个 urlopen 函 ...

  3. python爬虫之requests模块介绍

    介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...

  4. 爬虫 requests 模块

    requests 模块 介绍 使用requests可以模拟浏览器的请求, 比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) ps: requests库发 ...

  5. 请求库之requests模块

    本片导航: 介绍 基于GET请求 基于POST请求 响应Response 高级用法   一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的a ...

  6. 爬虫----requests模块

    一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内 ...

  7. 02 请求库之 requests模块

    requests模块   一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requ ...

  8. 三、请求库之requests模块

    一 介绍   #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网 ...

  9. python-爬虫之requests模块介绍(登陆github)

    介绍 使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) 注意 requests库发送请求将网页内容下载下来以后 ...

随机推荐

  1. JavaScript-语法专题

    一.数据类型的转换 概述 JavaScript是一种动态语言,变量没有类型限制,可以随时赋予任意值 强制转换:主要是值Number(),String(),Boolean三个函数 Number函数,可以 ...

  2. 简单Maven Dos命令语句

    简单Maven Dos命令语句: 打包:mvn package 编译:mvn compile 编译测试程序:mvn test-compile 清空:mvn clean 运行测试:mvn test 生成 ...

  3. Python核心框架tornado的异步协程的2种方式

    什么是异步? 含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位 现象:没有共同的时钟,不考虑顺序来了 ...

  4. 搞笑入群二维码在线生成源码 php图片合成并添加文字水印

    在凤凰网看到一篇文章:微信群二维码也能“整人”,99%的好友会中招!感觉挺好玩,所以自己也想做一个! 冷静分析

  5. while else

    count = 0 while count <= 5 : count += 1 if count == 3:pass print("Loop",count) else: pr ...

  6. Less Is More【少即是多】

    Less Is More Adults understand what it feels like to be flooed with objects. 成年人知道被物品淹没的感觉. Why do w ...

  7. vue---day04

    1. Node.js 1.1 介绍: - Node.js 是一个JavaScript运行环境,实质上是对Chrome V8引擎的封装. - Node.js 不是一个 JavaScript 框架,不同于 ...

  8. 【Java】关于Spring MVC框架的总结

    SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦.基于请求驱动指的就是使用请求-响应模型,框架的 ...

  9. ansible结合SHELL搭建自己的CD持续交付系统

    一. 设计出发点 因公司业务面临频繁的迭代上线,一日数次.仅仅依靠手工效率过低且易出错. 考虑搭建一套可以满足现有场景的上线系统. 二 .为何采用ansible+shell方式 1.可控性(完全自主拥 ...

  10. spark优化系列一:参数介绍

    1 spark on yarn常用属性介绍 属性名 默认值 属性说明 spark.yarn.am.memory 512m 在客户端模式(client mode)下,yarn应用master使用的内存数 ...