requests模块
requests模块 |
Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。
1、安装模块
##1、安装 # 软件管理工具 pip3 # pip3路径添加到环境变量 # pip3路径: C:\Python35\Scripts # 添加环境变量:【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 # pip3 install requests # 2、源码安装 # 下载代码,安装 #1 先下载 # https://github.com/kennethreitz/requests/tarball/master # 2、解压 # 3、进入目录 # 4、执行python setup.py install
2、使用模块

# 1、无参数实例 import requests ret = requests.get('https://github.com/timeline.json') print(ret.url) print(ret.text) # 2、有参数实例 import requests payload = {'key1': 'value1', 'key2': 'value2'} ret = requests.get("http://httpbin.org/get", params=payload) print(ret.url) print(ret.text)

# 1、基本POST实例 import requests payload = {'key1': 'value1', 'key2': 'value2'} ret = requests.post("http://httpbin.org/post", data=payload) print(ret.text) # 2、发送请求头和数据实例 import requests import json url = 'https://api.github.com/some/endpoint' payload = {'some': 'data'} headers = {'content-type': 'application/json'} ret = requests.post(url, data=json.dumps(payload), headers=headers) print(ret.text) print(ret.cookies)

requests.get(url, params=None, **kwargs) requests.post(url, data=None, json=None, **kwargs) requests.put(url, data=None, **kwargs) requests.head(url, **kwargs) requests.delete(url, **kwargs) requests.patch(url, data=None, **kwargs) requests.options(url, **kwargs) # 以上方法均是在此方法的基础上构建 requests.request(method, url, **kwargs)
3、Http请求和XML实例
实例:检测QQ账号是否在线

import requests ##导入requests模块,发送URL请求 from xml.etree import ElementTree as QQ###导入xml文件里etree,ElementTree模块重命名为QQ rat=requests.get('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=875220171') hep=rat.text ###接收内容 ron=QQ.XML(hep)###解析XML格式内容 print(ron.text) if ron=='y': print("在线") else: print('不在线')
实例:查看火车停靠信息

import requests from xml.etree import ElementTree as ET rat=requests.get('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=K234&UserID=').text # print(rat) fun=ET.XML(rat)##解析成XML格式内容 # print(fun) for node in fun.iter('TrainDetailInfo'): ###循环他的头标签 print(node.find('TrainStation').text, node.find('StartTime').text)##打出他的TrainStation和StartTime