• python学习笔记(十七)网络编程之urllib模块


    如何用python打开一个网站或者请求一个接口呢,我们在这篇博客介绍一下。

    首先我们得导入一个urllib模块,这个模块是python自带的标准模块,直接导入就能使用,但是用起来不方便,先看个简单的打开一个网页的例子吧。

    from urllib import request,parse
    url = 'http://www.baidu.com'
    req = request.urlopen(url)  #打开一个url,发get请求
    content = req.read().decode() #获取返回结果,返回结果是byte类型,需要解码
    fw = open('baidu.html','w',encoding='utf-8')
    fw.write(content)

    下面我们做一个get请求的接口,也是类似的操作

    import json
    url='http://api.python.cn/api/user/stu_info?stu_name=xiaohei'
    req = request.urlopen(url)  #打开一个url,发get请求
    content = req.read().decode() #获取返回结果
    res_dic = json.loads(content) #返回的结果转成字典
    if res_dic.get('error_code') == 0:
        print('测试通过')
    else:
        print('测试失败',res_dic)

    如果请求是post请求呢,那么我们需要将参数也写入进去

    url = 'http://api.python.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请求
    print(req.read().decode())

    从以上例子可以看出,urllib这个模块用起来确实很麻烦,像post请求,需要将参数通过urlencode拼接起来,然后encode编码,然后再去发送请求,获取到结果后又需要将返回数据进行decode解码。可以说是相当费劲。那么下篇博客我们就来介绍网络编程中常用的好用的模块吧。。。。。

  • 相关阅读:
    【笔记】Eclipse and Java for Total Beginners—015
    [笔记]再笔记边干边学Verilog HDL –006
    [笔记]再笔记边干边学Verilog HDL 002
    【笔记】Eclipse and Java for Total Beginners—016
    这是第一篇博客文章
    c语言读取obj文件转换数据
    腾讯研发项目总监:互联网产品开发中的“快”字诀
    截取年月日错误笔记
    我在赶集网的两个月
    庆云书店叹息中关门
  • 原文地址:https://www.cnblogs.com/mululu/p/9049980.html
Copyright © 2020-2023  润新知