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)
GET请求
# 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)
POST请求
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('不在线')
检测QQ是否在线程序

实例:查看火车停靠信息

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
查看列车停靠信息

 

posted @ 2016-05-26 15:56  青春永不言弃  阅读(93)  评论(0)    收藏  举报