一、urllib其它函数

前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍。当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码、解码等等。

辅助方法:

1. urllib.quote(string[,safe]) : 对字符串进行编码,参数safe指定了不需要编码的字符;

urllib.unquote(string):  对字符串进行解码;

2. urllib.urlencode(query[,doseq]): 将dict或都包含两个元素的元组列表转换成url参数。

例如:

>>> dict1 = {'name':'baidu','Local':'CD'}

>>> data = urllib.urlencode(dict1)

>>> print data

Local=CD&name=baidu

3. urllib.pathname2url(path): 将本地path转换成url路径

urllib.url2pathname(path): 将url路径转换成本地路径

二、urllib与urllib2的区别:

urllib 和 urllib2 都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:

urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。

urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。

三、urllib2常用函数:

1.urllib2.urlopen()方法

即可以接受一个字符串型的url 地址或者一个 Request 对象。将打开这个 url 并返回结果为一个像文件对象一样的对象.

urlopen()是最简单的请求方式,它打开url并返回类文件对象,并且使用该对象可以读取返回的内容。参数url可以是包含url的字符串,也可以是urllib2.request类的实例。data是经过编码的post数据(一般使用urllib.urlencode()来编码)。timeout是可选的超时期(以秒为单位),供所有阻塞操作内部使用。

常用方法:

1. read(),readline(),readlines():  以字节字符串形式读取(nbytes个数据、单行、返回一个列表)

2.getcode():  返回整数形式的HTTP响应代码,比如成功返回200,未找到文件时返回404

3.info()  :  返回映射对象,该对象带有与url关联的信息,对HTTP来说,返回的服务器响应包含HTTP包头。

2. urllib2.Request()方法

语法:Request(url [data,headers [,origin_req_host ,[unverifiable]]]])

对于比较简单的请求,urlopen()的参数url就是一个代表url的但如果需要执行更复杂的操作,如修改HTTP报头,可以创建Request实例并将其作为url参数。

新建Request实例。url为url字符串,data是伴随url提交的数据(比如要post的数据)。不过要注意,提供data参数时,它会将HTTP请求从'GET'改为‘POST’。headers是一个字典,包含了可表示HTTP报头的键值映射(即要提交的header中包含的内容)。originreqhost通常是发出请求的主机的名称,如果请求的是无法验证的url(通常是指不是用户直接输入的url,比如加载图像的页面中镶入的url),则后一个参数unverifiable设为TRUE。

假设Request实例r,其比较重要的方法有下面几个:

r.add_data(data)向请求添加数据。如果请求是HTTP请求,则方法改为‘POST’。data是向指定url提交的数据,要注意该方法不会将data追教导之前已经设置的任何数据上,而是使用现在的data替换之前的。

r.add_header(key, val)向请求添加header信息,key是报头名,val是报头值,两个参数都是字符串。

r.addunredirectedheader(key, val)作用基本同上,但不会添加到重定向请求中。

r.set_proxy(host, type)准备请求到服务器。使用host替换原来的主机,使用type替换原来的请求类型。

python urllib2模块安装,Python urllib和urllib2模块学习(二)相关推荐

  1. 手机python软件下载安装,python手机下载安装教程

    如何在手机上下载python 应用市场内搜索下载下载Python在您开始之前,在你的计算机将需要Python,但您可能不需要下载它. 首先检查(在命令行窗口输入python)有没有安装Python!如 ...

  2. windows安装python库_Windows安装Python机器学习包

    Python 虽然是一门脚本语言,但借助诸如 Numpy.Scipy 等功能强大的 package(包),如今 Python 在科学计算.机器学习.数据挖掘方面都有较为广泛的应用.本教程介绍如何在 W ...

  3. 如何在VSCode中添加Python解释器并安装Python库

    如何在VSCode中添加Python解释器并安装Python库 作者介绍 一. 安装VScode编辑器 二. 安装Python解释器 三. 在VScode中添加Python解释器 四. 创建项目并在V ...

  4. [python]Win7 X64安装python Scrapy

     最近想研究一下python的爬虫,网上查找了一下资料,scrapy是python爬虫中比较牛b的存在,经过确认,确实是比较"牛B",安装这个scrapy库实在是"牛 ...

  5. python的网络请求库urllib、urllib2、urllib3、request的联系

    文章目录 1. 简介 2. urllib 3. urllib2 4. urllib3 5. requests 6. 相关文章 1. 简介 urllib.urllib2.urllib3.request均 ...

  6. python压缩包怎么安装-Python学习笔记-打包发布Python模块或程序,安装包

    Python模块.扩展和应用程序可以按以下几种形式进行打包和发布: python setup.py获取帮助的方式 python setup.py --help python setup.py --he ...

  7. python安装包-安装 Python 模块

    安装 Python 模块¶ 作为一个流行的开源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其他Python开发人员在开源许可条款下使用. 这允许Python ...

  8. python第三方模块安装路径_Python第三方Window模块文件的几种安装方法

    python安装第三方模块 使用软件管理工具pip python自带了包管理工具,就像手机app商城,91助手等软件的功能一样. python2与python3安装模块的方法相似,值得注意的是,你在p ...

  9. python db2 linux 安装,python安装DB2模块

    PyDB2最新的更新是2008的PyDB2_1.1.1,在ubuntu14.0464位下直接安装不成功.需要做一些修改 一.解压后打开setup.py 找到#DB2_ROOT = "/opt ...

最新文章

  1. 通过分离dataSource 让我们的code具有更高的复用性.
  2. 【NCEPU】韩绘锦:扩散卷积神经网络
  3. java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题
  4. Java 设计模式之装饰器模式
  5. Daily scrum 11.22
  6. 牛客网算法题目-最优乘车题解
  7. windows 系统删除服务命令 sc delete 服务名称
  8. 用vs2019制作简易计算器
  9. python大漠库_python类似大漠插件的库
  10. Scala编程思想高清中文版PDF
  11. 亚马逊入驻商用户画像分析
  12. 自定义皮肤进服务器不显示,我的世界自定义皮肤为什么不能显示 我的世界自定义皮肤如何显示...
  13. 12款精选浏览器插件推荐
  14. 【深度学习】Pytorch实现CIFAR10图像分类任务测试集准确率达95%
  15. 单片机看门狗是什么?工作原理?使用方法?
  16. 物联网新零售项目 物联网亿万级通信一站式解决方案EMQ
  17. 金蝶EAS8.61 金蝶SHR8.61 金蝶EAS8.6 金蝶EAS8.5 金蝶EAS8.2 金蝶EAS8.0 金蝶EAS7.5 金蝶EAS7.03 金蝶EAS7.01 金蝶EAS7.0
  18. MATLAB画聚类热图,使用ComplexHeatmap绘制热图
  19. 设计模式之15 - 解释器模式Interpreter
  20. c语言程序设计王延梅,关于举办2013年京联合大学计算机应用大赛等六项.doc

热门文章

  1. 【有序充电】基于遗传算法对电动汽车有序充电进行优化附Matlab代码
  2. PEV - PE文件分析工具
  3. 对于设备重复报警多次报警的处理和判定
  4. 【vs】开始运行、开始运行不调试区别
  5. C++遍历map方法
  6. XHR简介及基本使用
  7. C#匿名函数排序交错数组
  8. 书中的阿甘和电影中的阿甘
  9. 以华为畅享平板2为例,作为笔记本电脑的扩展屏
  10. hivesql中 exists 用法