本文介绍Python里的urllib模块,这个urllib主要处理web服务的,如果需要做接口测试,或者写Python的网络爬虫,这个urllib就是最底层的库。需要用到里面的请求方法等。

1. 先看看一个不带参数的http 请求

# urllib模块
import urllib.request # 向web服务器发送一个请求,打开百度学术首页
x = urllib.request.urlopen('http://xueshu.baidu.com/') # 打印页面源代码
print(x.read())

  自己运行下,这里就不贴运行结果

2.再看看带参数的http 请求,这里以新浪天气举例

# urllib模块
import urllib.request
import urllib.parse # 向web服务器发送一个请求,打开百度学术首页
#x = urllib.request.urlopen('http://xueshu.baidu.com/') # 打印页面源代码
#print(x.read()) # 发送一个带参数的请求
url = 'http://php.weather.sina.com.cn/search.php'
values = {'city':'北京',
'dpc':'1'
}
'''
city=北京,这个字段需要转码,转成后是%B1%B1%BE%A9
你可以打开http://php.weather.sina.com.cn,搜索北京看看是不是这个转码
这个转码过程就叫encode
'''
data = urllib.parse.urlencode(values)
# 参数的编码格式是Unicode,这里用utf-8,最适合网络传输的编码协议
data = data.encode('utf-8')
# 调用一个有url和参数的请求,通过Request(url,data)
req = urllib.request.Request(url,data)
# 打开这个请求,通过urlopen函数
resq = urllib.request.urlopen(req)
# 定义一个响应返回数据respData,也就是读取查询北京天气的页面
respData = resq.read()
# 打印北京天气查询结果页的源代码
print(respData)

  运行一下,需要等待一点时间,就可以看到北京天气查询结果页的源代码输出。

Python下的urllib库就先介绍到这里,以后做爬虫或者接口自动化测试,需要用到这些。当然,爬虫和接口测试Python不止urllib这个库,还有更好的库支持完成这些工作。

Python 3基础教程31-urllib模块的更多相关文章

  1. Python数据分析基础教程

    Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...

  2. Python机器学习基础教程-第2章-监督学习之决策树

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  3. Python机器学习基础教程-第1章-鸢尾花的例子KNN

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  4. [SQL基础教程] 3-1 对表进行聚合查询

    [SQL基础教程] 3-1 对表进行聚合查询 聚合函数 用于合计的函数称为聚合函数或者集合函数 COUNT SUM AVG MAX MIN SELECT COUNT(*) FROM table; SE ...

  5. 小白必看Python视频基础教程

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...

  6. Python Numpy基础教程

    Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...

  7. Python机器学习基础教程-第2章-监督学习之决策树集成

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  8. Python机器学习基础教程-第2章-监督学习之线性模型

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  9. Python机器学习基础教程-第2章-监督学习之K近邻

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  10. Python机器学习基础教程

    介绍 本系列教程基本就是搬运<Python机器学习基础教程>里面的实例. Github仓库 使用 jupyternote book 是一个很好的快速构建代码的选择,本系列教程都能在我的Gi ...

随机推荐

  1. Hibernate注解开发示例

    -------------------------------------------------------------------customer------------------------- ...

  2. 基于Qt搭建ROS开发环境

    参考的博客: http://blog.csdn.net/u013453604/article/details/52186375 http://blog.csdn.net/dxuehui/article ...

  3. SqlSugar操作Oracle的dblink时候@符号问题

    用的这个版本,作者忘记删除Oracle中的代码了....下个版本作者应该就会更新了,到时候就不会存在这个问题,这里记录一下. 引用nuget出现的问题: 使用dblink的时候,查询的时候需要带@符号 ...

  4. 小白袍 -- Chapter 1 Java中的Encode与Decode

    前几天做一个邮件发送功能,一些常用信息配置在properties文件中,通过prop.getProperty(key)来获取配置的信息,结果配置文件中是用中文写的,邮件发送成功后,邮箱中的激活链接是乱 ...

  5. 规避Javascript多人开发函数和变量重名问题

    函数和变量重名始终是一个令人头痛的问题,先讲变量吧,相信了解JS的朋友都知道,在JS中 是没有块级作用域的只有函数作用域,也就是说那些以大括号为界定符的代码块是管不住其中定义 的变量的作用域的,举例: ...

  6. 嗨翻C语言笔记(二)

    ~a a中所有位都取反 a & b a中的位 与 b中的位 (都为1则1,否则为0) a | b a中的位 或 b中的位 (只要对应位一个位1则为1) a ^ b a中的位 亦或 b中的位 & ...

  7. notepad++实现python运行

    一.先确保windows电脑上先安装python解释器 方法参考:https://www.cnblogs.com/hepeilinnow/p/9727922.html 二.打开notepad++,写一 ...

  8. mysql 导出数据字典

    使用Navicat工具 查询: SELECT TABLE_SCHEMA AS '数据库', TABLE_NAME AS '表名', COLUMN_NAME AS '字段名', COLUMN_TYPE ...

  9. less学习二---变量

    less中声明的变量可以存储css属性值,还可以存储选择器,属性名,url以及@imporant等 变量声明及赋值格式:@variableName : varableValue ; //属性值 //l ...

  10. phpredis命令

    <?php //redis //检查一个扩展是否已经加载.大小写不敏感. if (!function_exists('redis')) { echo '不支持 redis'; return ; ...