zoukankan      html  css  js  c++  java
  • 网络编程之 urllib 模块

    首先urlib并不是一个很好用的方法,这里仅作简单介绍。一般我们用requests方法来代替urlib方法。

    1. get请求

    1 from urllib import request
    2 url = 'http://www.baidu.com'
    3 req = request.urlopen(url)    #打开一个url,发送get请求
    4 content = req.read().decode()    #读取源代码
    5 fw = open('baidu.html','w',encoding='utf-8')
    6 fw.write(content)

    第1行:从urllib中导入request函数,也可以写成:import urllib.request

    第2行:get请求的url链接,如果是在接口测试中,后面应带上参数,例如:http://api.xxxx.cn/api/user/stu_info?stu_name=xiaohei

    第3行:打开url,发送get请求,获取到的是

    第4行:读取源代码,直接读出来的是二进制格式,要进行解码

    第5行:创建一个文件,以“w”模式

    第6行:将读取的源代码写到baidu.html中

    2. post 请求

    1 from urllib import request,parse
    2 url = 'http://api.xxxx.cn/api/login'
    3 data = {
    4     'username':'xxxx',
    5     'passwd':'xxxxxxxx'
    6 }    #请求数据
    7 data = parse.urlencode(data)    #把字典变成了字符串:username=xxxx&passwd=xxxxxxx,拼好参数
    8 req = request.urlopen(url,data.encode())    #传入的参数要byte类型
    9 print(req.read().decode())

    第1行:从urllib中导入request、parse函数

    第2行:请求地址

    第3行:post 入参,定义的data是字典格式

    第7行:parse.urlencode()方法会把字典变成一个字符串,并且拼接成username=xxxxx&passwd=xxxxxx的格式。

    第8行:传入的参数要转换成二进制格式

    第9行:打印出post结果,要解码。

     
     
     
     
  • 相关阅读:
    剑指Offer——翻转单词顺序列
    剑指Offer——左旋转字符串
    剑指Offer——和为S的两个数字
    剑指Offer——和为S的连续正数序列
    剑指Offer——数组中只出现一次的数字
    log4cxx入门第一篇--一个小例子
    gsoap写一个c++ webservice
    Protocol Buffer技术详解(数据编码)
    Protocol Buffer技术详解(Java实例)
    Protocol Buffer技术详解(C++实例)
  • 原文地址:https://www.cnblogs.com/pengzhuopeng/p/9039124.html
Copyright © 2011-2022 走看看