• 网络编程(爬虫,接口和requests的模块应用)及网络测接口


    1.网络

    from urllib import request,parse
    # url = 'http://www.nnzhp.cn'
    # req = request.urlopen(url) #打开一个url,发get请求 用来发请求
    # content = req.read().decode() #获取返回结果 获取网站的内容 返回的是byte类型需要decode一下

    # fw = open('baidu.html','w',encoding='utf-8') #写入到本地文件中
    # fw.write(content)#可以在浏览文件时通过浏览器打开




    访问接口(1)get请求

    import json
    # url='http://api.nnzhp.cn/api/user/stu_info?stu_name=xiaohei' #接口地址
    # req = request.urlopen(url) #打开一个url,发get请求
    # content = req.read().decode() #获取返回结果
    # res_dic = json.loads(content) #获得结果是字符串(json串)返回的结果转成字典 便于取值
    # if res_dic.get('error_code') == 0: #自动检查是否返回成功
    # print('测试通过')
    # else:
    # print('测试失败',res_dic)

    访问接口(2)post请求
    url = 'http://api.nnzhp.cn/api/user/login'
    data = {
    'username':'admin',
    'passwd':'aA123456'
    } #请求数据
    data = parse.urlencode(data) #urlencode,自动给你拼好参数 为字符串
    # xx=xx&xx=11
    req = request.urlopen(url,data.encode()) #发post请求 字符串的参数还需转化为byte类型才能发送请求。
    print(req.read().decode())

    # 网络爬虫,从其他的网站上,获取一些有用的内容。

    2.好用的模块
    import requests

    #1、发get请求
    # url = 'http://api.nnzhp.cn/api/user/stu_info'
    # data = {'stu_name':'小黑'} #请求数据
    # req = requests.get(url,params=data) #发get请求
    # print(req.json()) #字典
    # print(req.text) #string,json串

    #返回的都是什么
    #返回的类型是什么
    #中文的好使吗
    #2 、发post请求
    # url = 'http://api.nnzhp.cn/api/user/login'
    # data = {'username':'niuhanyang','passwd':'aA123456'} #请求数据
    # req = requests.post(url,data) #发送post请求
    # print(req.json())

    #3、入参是json类型的
    # import random
    # phone=random.randint(10000000000,99999999999) #号码不能重复
    # url='http://api.nnzhp.cn/api/user/add_stu'
    # data = {
    # "name":"小1",
    # "grade":"天蝎座",
    # "phone":phone,
    # "sex":"男",
    # "age":28,
    # "addr":"河南省济源市北海大道32号"
    # }
    # req = requests.post(url,json=data)
    # print(req.json())

    # 4、添加cookie
    # url = 'http://api.nnzhp.cn/api/user/gold_add'
    # data = {'stu_id':468,'gold':10000}
    # djl = {'niuhanyang':'337ca4cc825302b3a8791ac7f9dc4bc6'}
    # req = requests.post(url,data,cookies=djl)
    # print(req.json())

    #5、添加header
    # url = 'http://api.nnzhp.cn/api/user/all_stu'
    # header = {
    # 'Referer':'http://api.nnzhp.cn/'
    # }
    # req = requests.get(url,headers=header)
    # print(req.json())

    #6、上传文件
    # url= 'http://api.nnzhp.cn/api/file/file_upload'
    # data = {
    # 'file':open(r'C:UsersjniuhanyangDesktop图6bd9026dt935575932465&690.jpg','rb') 文件会指定utf-8 excel 也是rb
    # }
    # req= requests.post(url,files=data)
    # print(req.json())

    #7、下载文件
    url = 'http://up.mcyt.net/?down/46779.mp3'
    req = requests.get(url)
    fw = open('aaa.mp3','wb')
    fw.write(req.content)
     
  • 相关阅读:
    自定义View之实现流行的底部菜单栏中间突起:高仿“咸鱼APP”的底部菜单
    android获取内置和外置SD卡路径
    Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储?
    bitmap过大无法显示图片的问题
    Android Notification的使用
    Android Device Monitor 文件管理的常见问题
    BroadcastReceiver广播相关
    Android Studio 设置代码提示和代码自动补全快捷键--Eclipse 风格
    Android Studio com.android.support:percent 导入错误
    约束布局constraint-layout导入失败的解决方案
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9043647.html
Copyright © 2020-2023  润新知