网络编程之 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结果,要解码。
网络编程之 urllib 模块的更多相关文章
- python学习笔记(十七)网络编程之urllib模块
如何用python打开一个网站或者请求一个接口呢,我们在这篇博客介绍一下. 首先我们得导入一个urllib模块,这个模块是python自带的标准模块,直接导入就能使用,但是用起来不方便,先看个简单的打 ...
- 网络编程之urllib
#网络爬虫,从其他的网站上,获取一些有用的内容,存入自己的数据库,然后再展示在指定的位置.#urllib是python自带的模块 1.urllib模块做网络爬虫,爬取网页: from urllib i ...
- python学习笔记(十八)网络编程之requests模块
上篇博客中我们使用python自带的urllib模块去请求一个网站,或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想直接把返回结果拿出 ...
- 网络编程之socket模块
一.TCP协议 TCP是可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:电子邮件.文件传输程序. 二.基于TCP ...
- 网络编程之socket
网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...
- python3网络编程之socketserver
本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...
- 网络编程之socketserver
网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...
- 网络编程之socketserver初识
网络编程之socketserver初识 Server #!/usr/bin/env python # @Author : "Wjl" # @Date : 2017/12/22 # ...
- 网络编程之TCP/IP各层详解
网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...
- Python网络编程之TCP套接字简单用法示例
Python网络编程之TCP套接字简单用法示例 本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而jav ...
随机推荐
- [转载]Linux关于磁盘操作命令
一.查看篇 1.1.du : 查看文件和 目录的使用空间 语法: du [参数] [文件或目录] 参数 说明 -a 列出所有的文件与目录容量. -h 以G.M.K为单位,返回容量. -s 列出总量. ...
- 如何使用命令行直接运行PHP脚本程序
在我的博客里有一些文章是和解码或者处理文件有关,其中有些自动化工作比较简单,使用了一些PHP程序来编写处理,这样写起程序来也比较快,因为是纯过程的任务,不想用C#来处理. 写完PHP的脚本程序后,保存 ...
- CTF学习笔记(三)php部分
三.常见PHP用法与漏洞 (〇)php的备份文件与phps php的备份文件一般是*.php.bak,在根目录下输入/index.php.bak, 下载 备份文件. phps文件就是php的源代码文件 ...
- 在前端js worker里使用dom并且加载jquery
四个工具: nodejs + npm npm安装的jsdom npm安装的jquery npm安装的browserify 网址: browserify: https://browserify.org/ ...
- notepad++解决粘贴复制代码行数问题
一.打开 Notepad++,按住 Alt,鼠标点击拖出选择框,这个是列选方法.如图: 然后删除即可 二. 1.将带行数的代码粘贴复制到notepad++中: 2.按ctrl+f,选中替换,选中正则表 ...
- 4、Hadoop初识
- 【vcpkg】使用vcpkg安装库
https://blog.csdn.net/cjmqas/article/details/79282847 使用vcpkg 查看vcpkg支持的开源库列表 执行命令 .\vcpkg.exe searc ...
- IO学习笔记7
2.4 多路复用javaAPI 在上面我们简单java代码实现了多路复用,是一个单线程版的.讲上面的epoll代码复制到linux服务器中,使用strace追踪系统调用. javaAPI会根据系统类型 ...
- 【B站】B站计算集数时长,调节任意倍速
打开浏览器,任意收藏一个网址,将URL替换为下面的代码并保存 打开任意B站视频页面,点击这个收藏的网址,即可在页面右边看到如下窗口 javascript: (function () { var hou ...
- linux环境下mariadb10.5.16的数据存储目录修改
mysql或mariadb的数据,一般默认存在/var/lib/mysql目录下,本文介绍把mariadb数据存到容量较大的目录中,如/home 操作步骤: 1.将/var/lib/mysql的数据复 ...