python核心类库:urllib使用详解
python版本:2.7.15
1.简单用法urllib.urlopen()
语法:
urllib.urlopen(url[, data[, proxies]]) :
打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。
示例代码:
googleResponse = urllib.urlopen('http://www.google.com.hk')
print 'http header:/n', googleResponse.info()
print 'http status:', googleResponse.getcode()
print 'url:', googleResponse.geturl()
# 读取html页面的第一行
firstLine = googleResponse.readline()
# 就像在操作本地文件
for line in googleResponse:
print line,
googleResponse.close()
urlopen返回对象提供方法:
- read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样
- info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息
- getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
- geturl():返回请求的url
2.存储为文件urllib.urlretrieve()
语法:
urllib.urlretrieve(url[,filename[,reporthook[,data]]])
urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。
urlretrieve()返回一个二元组(filename,mine_hdrs)
临时存放:
filename = urllib.urlretrieve('http://www.google.com.hk/')
prtin type(filename)
# <type 'tuple'>
prtin filename[0]
# '/tmp/tmp8eVLjq'
print filename[1]
# <httplib.HTTPMessage instance at 0xb6a363ec>
存为本地文件:
filename = urllib.urlretrieve('http://www.google.com.hk/',filename='/home/python/google.html')
print type(filename)
# <type 'tuple'>
print filename[0]
# '/home/python/google.html'
print filename[1]
# <httplib.HTTPMessage instance at 0xb6e2c38c>
3.使用urllib实现post方法和get方法
需要用到urllib.urlencode(query)将URL中的参数键值对以连接符&划分
GET方法:
import urllib
params=urllib.urlencode({'name':'aaron','pwd':'123456','rem':0})
print params
# 'pwd=123456&name=aaron&rem=0'
f=urllib.urlopen("http://dev.xxx.com/login?%s" % params)
print f.read()
POST方法:
import urllib
parmas = urllib.urlencode({'name':'aaron','pwd':'123456','rem':0})
f=urllib.urlopen("http://dev.xxx.com/login",parmas)
f.read()
4.其它方法
urllib.urlcleanup()
清除由于urllib.urlretrieve()所产生的缓存
urllib.quote(url)和urllib.quote_plus(url)
将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。
print urllib.quote('http://www.baidu.com')
# 'http%3A//www.baidu.com'
print urllib.quote_plus('http://www.baidu.com')
# 'http%3A%2F%2Fwww.baidu.com'
urllib.unquote(url)和urllib.unquote_plus(url)
与urllib.quote(url)和urllib.quote_plus(url)函数相反。
done!
python核心类库:urllib使用详解的更多相关文章
- Python爬虫系列-Urllib库详解
Urllib库详解 Python内置的Http请求库: * urllib.request 请求模块 * urllib.error 异常处理模块 * urllib.parse url解析模块 * url ...
- Python爬虫之urllib.parse详解
Python爬虫之urllib.parse 转载地址 Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url 解析url( urlparse() ) ur ...
- [转]使用python来操作redis用法详解
转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...
- 爬虫入门之urllib库详解(二)
爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...
- 【转】maven核心,pom.xml详解
感谢如下博主: http://www.cnblogs.com/qq78292959/p/3711501.html maven核心,pom.xml详解 什么是pom? pom作为项目对象模型.通过 ...
- WebService核心之WSDL深入详解
WebService核心之WSDL深入详解 根据上一篇文章开发的Web Service实例生成的WSDL文档如下: XML里两个属性介绍: targetNamespace 相当于ja ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- Nginx核心配置文件常用参数详解
Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...
随机推荐
- c#dataGridView 知识
一.单元格内容的操作 // 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Conso ...
- Tap 模拟手势点击坐标
前言:有时候元素怎么都定位不到,没办法就只能坐标定位了,不过这个坐标定位不准确,换个手机就可能定位不到了,这是一个下下策的定位方式. tap用法 1.tap是模拟手指点击页面上元素语法有两个参数,第一 ...
- Arduino-汉王PM2.5检测模组B1
汉王PM2.5检测模组B1,接入Arduino,使用I2C1602显示屏显示 #include <Arduino.h> #include <Wire.h> #include & ...
- Appium环境搭建过程中遇到的问题及解决办法
一.[Error: Could not detect Mac OS X Version from sw_vers output: '10.12.6'] 解决办法: 1.vi /Applications ...
- 大直播时代,P2P才是降低成本的必杀技
在流媒体传输分发领域,CDN和P2P一直是经常被拿来进行对比和讨论的一大热点,虽然不少大型视频企业目前同时使用着CDN和P2P两套分发机制,但相对于CDN,很多人对于P2P技术知之甚少.整体来说,P2 ...
- HDU 6140 17多校8 Hybrid Crystals(思维题)
题目传送: Hybrid Crystals Problem Description > Kyber crystals, also called the living crystal or sim ...
- HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description Sample Input 2 Sample Outp ...
- 前端笔记 (2.CSS)
知识点借鉴于慕课网,菜鸟教程和w3shool CSS方面: CSS全称为“层叠样式表”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 使用CSS样式的一个好处是通过 ...
- 数据库开启对sys用户的审计
需求:客户想对数据库开启sys用户的审计功能,关闭其它用户的审计功能. 1)再一次巡检报告中,我们发现数据库版本11.2.0.4,开启审计功能,提供的建议如下,关闭审计alter system set ...
- Unity物品栏、商城3D物品的显示插件
UI显示3D模型插件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...