zoukankan      html  css  js  c++  java
  • python3 requests 进行接口测试、爬虫使用总结

    Requests 是第三方模块,如果要使用的话需要导入。Requests也可以说是urllib模块的升级版,使用上更方便。

    这是使用urllib的例子。

    import urllib.request
    import json
    url = 'http://www.weather.com.cn/data/sk/101190408.html'
    res = urllib.request.urlopen(url)#发送请求
    result = res.read().decode()#获取结果,结果是byte类型的需要decode()
    print(json.loads(result))

    下面是Requests 模块的使用。

    支持的请求:

    requests.get(‘https://github.com/timeline.json’) #GET请求
    requests.post(“http:xxx.xx.com/post”) #POST请求
    requests.put(“http:xxx.xx.com/put”) #PUT请求
    requests.delete(“http:xxx.xx.com/delete”) #DELETE请求
    requests.head(“http:xxx.xx.com/head”) #HEAD请求
    requests.options(“http:xxx.xx.com/get”) #OPTIONS请求

    发送GET请求:

    import requests,json
    url = 'http://api.xx.cn/api/user/stu_info?stu_name=hi'
    req = requests.get(url)#发送get请求
    print(req.text)#获取结果直接返回的就是json串
    print(type(req.text)) #str
    print(json.loads(req.text))#json转字典
    print(req.json())#获取结果就是字典,只有返回的是json串的话才能用req.json()
    print(type(req.json()))#dict

    发送POST请求

    url = 'http://api.xxx.cn/api/user/login'
    data = {'username':'aa','passwd':'123'}
    req = requests.post(url,data)#发送post请求,第一个参数是url,第二个参数是请求的数据
    print(req.json())

    发送格式为json的数据

    url = 'http://api.xxx.cn/api/user/add_stu'
    data = {
        "name":"aa",
        "grade":"bb",
        "phone":13512530000,
     
      }
    req = requests.post(url,json=data)#发送post请求,第一个参数是url,第二个参数是请求的数据,发送的json的话就写json=data
    print(req.json())

    发送带cookie的请求

    url = 'http://api.xx.cn/api/user/gold_add'
    data = {'stu_id':231,'gold':'100'}
    cookie = {'aa':'3d867b361afdaac1381b02ae746c7278'}#key 为登陆的用户名,value为sign的值
    req = requests.post(url,data,cookies=cookie)#添加cookie
    print(req.json())

    发送的请求中带Header

    url = 'http://api.xxx.cn/api/user/all_stu'
    header = {'User-Agent':'Chrome'}
    req = requests.get(url,headers = header)
    print(req.json())

    上传文件

    url = 'http://api.xxx.cn/api/file/file_upload'
    f = open(r'D:aa.jpg','rb')#图片要指定以二进制方式打开
    r =requests.post(url,files={'file':f})
    print(r.json())

    下载文件,图片,视频

    url = 'https://images2017.cnblogs.com/blog/412654/201712/412654-20171213115213238-464712233.png'
    r =requests.get(url)
    print(r.status_code)#获取请求状态码
    print(r.content)#获取返回结果二进制格式的
    fw = open('bt.jpg','wb')#当前路径
    #fw = open(r'd:t.jpg','wb')#指定绝对路径
    fw.write(r.content)#将二进制格式内容写入文件
    fw.close()

    爬虫,把网页保存到本地

    url = 'http://www.cnblogs.com/nancyzhu/p/8029994.html'
    r = requests.get(url)
    f = open('page.html','wb')
    f.write(r.content)
    f.close()
  • 相关阅读:
    杂七杂八注意
    数字和表达式
    小总结
    层级定位
    webdriver对象定位方法
    自动化测试第一季-selenium + python(环境搭建与基础代码解释)
    补基础—.—
    1-13 代理ARP和RARP
    Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    分布式集群系统下的高可用session解决方案
  • 原文地址:https://www.cnblogs.com/nancyzhu/p/8449552.html
Copyright © 2011-2022 走看看