欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > Python高手之路[8]Python基础请求模块

Python高手之路[8]Python基础请求模块

日期:2023-10-04 07:39

-->

1。请求模块描述

Requests 是一个使用 Apache2 许可的 HTTP 库。用 Python 编写,考虑到真实的人。

Python标准库中的

urllib2模块提供了你需要的大部分HTTP功能,但它的API很糟糕。它是为另一个时代、另一个互联网而创建的。即使是最简单的任务,也需要大量的工作,包括各种方法覆盖。

在Python的世界里,事情不应该这么麻烦。

Requests 使用 urllib 3,因此继承了其所有功能。 Requests支持HTTP连接持久化和连接池,支持使用cookie来维护会话,支持文件上传,支持自动确定响应内容的编码,支持国际化URL和POST数据的自动编码。现代、国际、人性化。

(以上转载自官方Requests文档)

2。请求安装模块

requests模块下载地址:http://www.introzo.com/en/latest/user/install/#install

然后执行安装,解压文件,进入文件目录,看到www.introzo.com文件,就可以了!在空白处按住shift键,右键,选择“在此处打开命令窗口”,然后输入以下命令

python www.introzo.com install

也可以使用pip来安装,

pip 安装请求

也可以使用easy_install来安装

easy_install 请求

尝试在 IDE 中导入请求。如果没有报错则说明安装成功。

3。 Requests模块简单介绍

#HTTP请求类型
#gettype
r = requests.get('https://www.introzo.com/timeline.json')
#posttype
r = www.introzo.com("http://www.introzo.com/post")
#输入类型
r = requests.put("http://www.introzo.com/put")
#删除类型
r = requests.delete("http://www.introzo.com/delete")
#头型
r = requests.head("http://www.introzo.com/head")
#选项类型
r = requests.options("http://www.introzo.com/get") #获取回复内容
print r.content #以字节为单位显示,汉字显示为
print r.text #显示为文本 #URL传递参数
Payload = {'keyword': '日本', 'salecityid': ''}
r = requests.get("http://www.introzo.com/webapp/tourvisa/visa_list", params=payload)
print r.url #示例为http://www.introzo.com/webapp/tourvisa/visa_list?salecityid=2&keyword=Japan #获取/修改网页编码
r = requests.get('https://www.introzo.com/timeline.json')
打印 r.encoding
r.encoding = 'utf-8' #json处理
r = requests.get('https://www.introzo.com/timeline.json')
print r.json() #需要先导入json #自定义请求头
url = 'http://www.introzo.com'
headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, 如 Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' }
r = www.introzo.com(url, headers=headers)
打印 r.request.headers #复杂的帖子请求
url = 'http://www.introzo.com'
有效负载 = {'some': '数据'}
r = www.introzo.com(url, data=json.dumps(payload)) #如果传入的payload是字符串而不是dict,需要先调用dumps方法进行格式化。 #postMultipart编码文件
url = 'http://www.introzo.com'
文件 = {'文件': open('report.xls', 'rb')}
r = www.introzo.com(url, 文件=文件) #响应状态码
r = requests.get('http://www.introzo.com')
打印 r.status_code #响应头
r = requests.get('http://www.introzo.com')
打印 r.headers
print r.headers['内容类型']
print r.headers.get('content-type') #访问响应头部分内容的两种方式 #饼干
url = 'http://www.introzo.com/some/cookie/setting/url'
r = requests.get(url)
r.cookies['example_cookie_name'] #读取cookie url = 'http://www.introzo.com/cookies'
cookies = dict(cookies_are='工作')
r = requests.get(url, cookies=cookies) #发送cookie #设置超时时间
r = requests.get('http://www.introzo.com', timeout=0.001) #设置访问代理
代理={
"http": "http://10.10.10.10:8888",
"https": "http://10.10.10.100:4444",
}
r = requests.get('http://www.introzo.com', proxies=proxies)

4。请求示例

json 请求

#!/user/bin/env python
#编码=utf-8
进口请求
导入 json 类 url_request():
def __init__(self):
“““ 在里面 ””” if __name__=='__main__':
headers = {'Content-Type' : 'application/json'}
Payload = {'国家名称':'中国',
'省名':'陕西省',
'L1城市名称':'汉中',
'L2城市名称':'城固',
'城镇名称':'',
'经度':'107.33393',
'纬度':'33.157131',
'语言':'CN'
}
r = www.introzo.com("http://www.introzo.com/CityLocation/json/LBSLocateCity",headers=headers,data=payload)
#r.encoding = 'utf-8'
数据=r.json()
如果 r.status_code!=200:
print "LBSLocateCity API 错误 " + str(r.status_code)
print data['CityEntities'][0]['CityID'] #打印返回json中某个key的值
打印数据['ResponseStatus']['Ack']
print json.dumps(data,indent=4,sort_keys=True,ensure_ascii=False) #树打印json,ensure_ascii必须设置为False否则中文会显示为unicode

xml 请求

#!/user/bin/env python
#编码=utf-8
导入请求 类 url_request():
def __init__(self):
“““ 在里面 ””” 如果 __name__=='__main__': headers = {'Content-type': 'text/xml'}
XML = 'WeChatJSTicket.JobWS.Job.JobRefreshTicket,WeChatJSTicket.JobWSRUN1127.0.0.11false'
url = 'http://www.introzo.com/RefreshWeiXInTokenJob/RefreshService.asmx'
r = www.introzo.com(url,headers=headers,data=XML)
#r.encoding = 'utf-8'
数据 = r.text
打印数据 -->