python urllib urlopen()对象方法/代理的补充说明


Posted in Python onJune 29, 2017

python urllib urlopen()对象方法/代理的补充说明

urllib 是 python 自带的一个抓取网页信息一个接口,他最主要的方法是 urlopen(),是基于 python 的 open() 方法的。下面是主要说明:

urllib.urlopen('网址')

这里传入urlopen()的参数有特别说要求,要遵循一些网络协议,比如http,ftp,也就是说,在网址的开头必须要有http://这样的说明,如:urllib.urlopen('http://www.baidu.com')。

要么就是本地文件,本地文件需要使用file关键字,比如 urllib.urlopen('file:nowamagic.py'),注意,这里的hello.py是指的是当前的classpath所指定的内容,如果对hello.py这里有什么疑问那一定是python寻找classpath的顺序不是很清楚了,当然也可以直接写全部路径,urllib.urlopen('file:F:\pythontest\nowamagic.py')。

打开 ftp 文件也是可以的,写法 urllib.urlopen(url='ftp://用户名:密码@ftp地址/') 等。

示例程序:

import urllib
f = urllib.urlopen('file:F:\pythontest\nowamagic.py')
a = f.read()
print a

如果传入的参数正确,比如该网站可以访问,没有特殊情况(比如需要代理,被墙等),那么将返回一个类似于文件对象的对象。即上面代码中的f,f对象有的方法一些操作方法,使用dir(f):

['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'fileno', 'fp', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url']

使用read()方法会将所有内容读取出来,并且同时f对象类似于先入先出的数据,在使用f.read()将得不到任何数据,也就是说,得到的数据在这个时候如果想在后面进行任何处理操作的话,需要另外定义一个对象来进行存储。如上例中的a。而info(),geturl()方法,也是基于f这个文档对象的,所以,使用

>>>f.geturl()
 'F://pythontest//nowamagic.py'

接下来是urllib的代理设置:

import urllib
proxies = {'http':'http://***.***.***.***:1984'}
filehandle = urllib.urlopen('http://www.需要代理才能访问的网站.com/',proxies = proxies)
a = filehandle.read()
print a

以上是最基本代理,即代理访问到该网站,并且能够获得该网站的内容。但是如果遇到需要登录,或者需要cookie等的网站呢?

查看urllib的源码:

def urlopen(url, data=None, proxies=None):
  """urlopen(url [, data]) -> open file-like object"""
  global _urlopener
  if proxies is not None:
    opener = FancyURLopener(proxies=proxies)
  elif not _urlopener:
    opener = FancyURLopener()
    _urlopener = opener
  else:
    opener = _urlopener
  if data is None:
    return opener.open(url)
  else:
    return opener.open(url, data)

由上面urllib的urlopen的源码,可以看出,还可以传入一个data参数,data参数也应该是一个字典,因为在使用浏览器向服务器发送数据的时候,我们发送的就是字典类型的数据。

还有一点,就是代理支持是 python 2.3 以后加入的。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python引用DLL文件的方法
May 11 Python
Python 26进制计算实现方法
May 28 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
Django实现表单验证
Sep 08 Python
Python实战购物车项目的实现参考
Feb 20 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
Django models.py应用实现过程详解
Jul 29 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
python 爬虫如何实现百度翻译
Nov 16 Python
python函数超时自动退出的实操方法
Dec 28 Python
基于PyTorch中view的用法说明
Mar 03 Python
python笔记:mysql、redis操作方法
Jun 28 #Python
老生常谈Python序列化和反序列化
Jun 28 #Python
python flask实现分页效果
Jun 27 #Python
Django自定义分页效果
Jun 27 #Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 #Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 #Python
Python的装饰器使用详解
Jun 26 #Python
You might like
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php随机抽奖实例分析
2015/03/04 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
JS继承用法实例分析
2015/02/05 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python中cPickle类使用方法详解
2018/08/27 Python
django解决跨域请求的问题详解
2019/01/20 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python二进制文件的转译详解
2019/07/03 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
班级活动策划书
2014/02/06 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
关爱留守儿童标语
2014/06/18 职场文书
Python基础详解之描述符
2021/04/28 Python
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js