首先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结果,要解码。

 
 
 
 

网络编程之 urllib 模块的更多相关文章

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

    如何用python打开一个网站或者请求一个接口呢,我们在这篇博客介绍一下. 首先我们得导入一个urllib模块,这个模块是python自带的标准模块,直接导入就能使用,但是用起来不方便,先看个简单的打 ...

  2. 网络编程之urllib

    #网络爬虫,从其他的网站上,获取一些有用的内容,存入自己的数据库,然后再展示在指定的位置.#urllib是python自带的模块 1.urllib模块做网络爬虫,爬取网页: from urllib i ...

  3. python学习笔记(十八)网络编程之requests模块

    上篇博客中我们使用python自带的urllib模块去请求一个网站,或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想直接把返回结果拿出 ...

  4. 网络编程之socket模块

    一.TCP协议 TCP是可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:电子邮件.文件传输程序. 二.基于TCP ...

  5. 网络编程之socket

    网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...

  6. python3网络编程之socketserver

    本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...

  7. 网络编程之socketserver

    网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...

  8. 网络编程之socketserver初识

    网络编程之socketserver初识 Server #!/usr/bin/env python # @Author : "Wjl" # @Date : 2017/12/22 # ...

  9. 网络编程之TCP/IP各层详解

    网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...

  10. Python网络编程之TCP套接字简单用法示例

    Python网络编程之TCP套接字简单用法示例 本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而jav ...

随机推荐

  1. 简单的自动清理TIM/QQ聊天垃圾文件方案

    我平时喜欢在后台挂着Tim,时间一长,我发现数据文件夹会越来越大,即使我没有看过这些消息(多为群聊消息),为了不再惦记清理垃圾文件,我整理了以下方案,可以每天清理一次7天前的文件. 1. 在磁盘任意位 ...

  2. QT使用中出现的问题

    1.运行程序程序弹出The CDB process terminated 2.调试弹出窗口提示缺少qtcreatorcdbext.dll 1.运行程序程序弹出The CDB process termi ...

  3. WPF datagrid双击一整行而不是选中单元格

    WPF开发一个工具 需要双击datagrid的某一行显示详细数据并编辑,之前双击行(DatagridRow)每次都跳转到单元格上(DatagridCell) 经验证,需要修改datagrid样式的某几 ...

  4. 7.29-bug计算器

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  5. java开发常用软件下载

    1.idea工具下载:https://www.jetbrains.com/idea/download/#section=windows 2.dbeaver下载:https://dbeaver.io  ...

  6. go开发框架推荐

    根据自己了解的情况,从易用性和文档完善程度来说,推荐优先考虑使用如下框架: fiber revel echo iris gin beego 以revel作为入门教程,在go项目的根文件夹里执行下面2条 ...

  7. Neural Network模型复杂度之Batch Normalization - Python实现

    背景介绍 Neural Network之模型复杂度主要取决于优化参数个数与参数变化范围. 优化参数个数可手动调节, 参数变化范围可通过正则化技术加以限制. 本文从参数变化范围出发, 以Batch No ...

  8. 自我介绍&学习心得

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2023learning/join?id=CfDJ8GXQNXLgcs5PrnWvMs4xAGN4cH ...

  9. Winform 在高分变率显示器中窗体变模糊配置方式

    我们知道  Winform 前身与 XP 系统 同一时代出生 , 那时候显示器还是LCD 和 大头机 ,显示器普遍  96 DPI  . 随着显示器质量改善,2K 屏, 4K屏普及,DPI 达  19 ...

  10. Windows系统的显示器校正

    莫名其妙的显示器显示的内容整体向上偏移,导致一些页面在最大化窗口时,看不见页面的标题,及操作按钮,如页面的关闭,缩小按钮. 解决方法:点击显示器下方的menu按钮,找到 设定 选项,再选择 复位 即可 ...