zoukankan      html  css  js  c++  java
  • 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解码。可以说是相当费劲。那么下篇博客我们就来介绍网络编程中常用的好用的模块吧。。。。。

  • 相关阅读:
    Python入门之面向对象的多态
    Python入门之面向对象的多态和继承
    Python入门之面向对象之类继承与派生
    Python入门之logging模块
    Python入门之字符编码
    Python入门之软件开发目录规范
    Python入门之ATM+购物车代码版思维导图
    mysql distinct
    Mysql中关于 group_concat函数详解
    关于mysql函数GROUP_CONCAT
  • 原文地址:https://www.cnblogs.com/mululu/p/9049980.html
Copyright © 2011-2022 走看看