python爬虫中的 urllib 模块 浅析
来源:互联网 发布:指针可以当数组用吗 编辑:程序博客网 时间:2024/05/17 06:02
python 3.x中urllib库和urilib2库合并成了urllib库,
比如你在python 2.x中引入 import urllib2 ,你在python 3.x 就不能引入 import urllib ,而应该是 import urllib.request
其中urllib2.urlopen()变成了urllib.request.urlopen()urllib2.Request()变成了urllib.request.Request()
python3对urllib和urllib2进行了重构,拆分成了urllib.request, urllib.response, urllib.parse, urllib.error等几个子模块,这样的架构从逻辑和结构上说更加合理。urljoin现在对应的函数是urllib.parse.urljoin
urllib模块中的方法
1.urllib.request.urlopen(url[,data[,proxies]])
打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。本例试着打开google
>>> import urllib>>> f = urllib.urlopen('http://www.google.com.hk/')>>> firstLine = f.readline() #读取html页面的第一行>>> firstLine'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"><head><meta content="/images/google_favicon_128.png" itemprop="image"><title>Google</title><script>(function(){\n'
urlopen返回对象提供方法:
- read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样
- info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息
- getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
- geturl():返回请求的url
2.urllib.urlretrieve(url[,filename[,reporthook[,data]]])
urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。
urlretrieve()返回一个二元组(filename,mine_hdrs)
临时存放:
>>> filename = urllib.request.urlretrieve('http://www.google.com.hk/')>>> type(filename)<type 'tuple'>>>> filename[0]'/tmp/tmp8eVLjq'>>> filename[1]<httplib.HTTPMessage instance at 0xb6a363ec>
存为本地文件:
>>> filename = urllib.urlretrieve('http://www.google.com.hk/',filename='/home/dzhwen/python文件/Homework/urllib/google.html')>>> type(filename)<type 'tuple'>>>> filename[0]'/home/dzhwen/python\xe6\x96\x87\xe4\xbb\xb6/Homework/urllib/google.html'>>> filename[1]<httplib.HTTPMessage instance at 0xb6e2c38c>
3.urllib.request.urlcleanup()
清除由于urllib.request.urlretrieve()所产生的缓存
4.urllib.request.quote(url)和urllib.request.quote_plus(url)
将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。
>>> urllib.request.quote('http://www.baidu.com')'http%3A//www.baidu.com'>>> urllib.request.quote_plus('http://www.baidu.com')'http%3A%2F%2Fwww.baidu.com'
5.urllib.request.unquote(url)和urllibrequest.unquote_plus(url)
与4的函数相反。
6.urllib.request.urlencode(query)
将URL中的键值对以连接符&划分
这里可以与urlopen结合以实现post方法和get方法:
GET方法:
>>> import urllib.request>>> params=urllib.request.urlencode({'spam':1,'eggs':2,'bacon':0})>>> params'eggs=2&bacon=0&spam=1'>>> f=urllib.request.urlopen("http://python.org/query?%s" % params)>>> print f.read()
POST方法:
>>> import urllib>>> parmas = urllib.request,urlencode({'spam':1,'eggs':2,'bacon':0})>>> f=urllib.request.urlopen("http://python.org/query",parmas)>>> f.read()
基本就这些,关于对象获取的方法就不赘述了。
- python爬虫中的 urllib 模块 浅析
- python中的urllib模块
- python--urllib模块中的方法
- Python中的urllib.request模块
- python爬虫之urllib模块和requests模块学习
- urllib模块爬虫在Python2在Python3中的使用
- python爬虫--urllib
- Python爬虫-urllib库
- [爬虫] Python爬虫 urllib BeautifulSoup
- python 爬虫入门(2) 爬虫基础知识 ; urllib 模块 ;urllib2 模块
- Python模块学习 --- urllib
- Python模块学习 --- urllib
- Python模块学习 --- urllib
- Python模块学习 ---- urllib
- Python urllib模块学习
- Python模块学习 --- urllib
- Python模块学习 --- urllib
- Python urllib模块
- 关于火狐浏览器IE浏览器的各种submit提交无效的问题
- 俄罗斯军事装备 苏——15
- 多布局的优化
- Spring配置数据源的三种方式 (dbcp,c3p0,jndi).
- 重建二叉树
- python爬虫中的 urllib 模块 浅析
- 搭建DAO层和Service层代码
- logback性能优化及源码分析
- Android判断机器是否联网
- #97 Maximum Depth of Binary Tree
- Swift-- 计算文字尺寸
- HashSet实现原理-源码调试
- C3P0连接池详解及配置
- httpurlconnection_get_post