Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据。
下面是在 Python Shell 里的 urllib 的使用情况:
01 |
Python 2.7 . 5 (default, May 15 2013 , 22 : 44 : 16 ) [MSC v. 1500 64 bit (AMD64)] on win32 |
02 |
Type "copyright" , "credits" or "license()" for more information. |
05 |
>>> print 'http header:\n' ,google.info() |
07 |
Date: Wed, 30 Oct 2013 03 : 11 : 44 GMT |
09 |
Cache - Control: private, max - age = 0 |
10 |
Content - Type : text / html; charset = Big5 |
11 |
Set - Cookie: PREF = ID = 7ee0cbd58be6fb74 :FF = 0 :NW = 1 :TM = 1383102704 :LM = 1383102704 :S = w6DoLuUBc7KUOE69; expires = Fri, 30 - Oct - 2015 03 : 11 : 44 GMT; path = / ; domain = .google.com.hk |
12 |
Set - Cookie: NID = 67 = cNyh4vZeoDJFnSe12viwoMNh47Hjq98F72I6TTNZGBuJx78aRgQbAA - RtGNFFpARCaN3zJ6OYIpJASB3Q7cmfyRguFh6epcBOSL930KEfIxUa - 85e946hE97WfP0lgk7 ; expires = Thu, 01 - May - 2014 03 : 11 : 44 GMT; path = / ; domain = .google.com.hk; HttpOnly |
15 |
X - XSS - Protection: 1 ; mode = block |
16 |
X - Frame - Options: SAMEORIGIN |
17 |
Alternate - Protocol: 80 :quic |
19 |
>>> print 'http status:' ,google.getcode() |
21 |
>>> print 'url:' ,google.geturl() |
22 |
url: http: / / www.google.com.hk / |
上面主要用到了 urllib 库里的 urlopen() 函数。我们可以了解一下这个函数。
继续使用 Python Shell:
1 |
>>> help (urllib.urlopen) |
2 |
Help on function urlopen in module urllib: |
4 |
urlopen(url, data = None , proxies = None ) |
5 |
Create a file - like object for the specified URL to read from . |
即创建一个类文件对象为指定的 url 来读取。
详细点就是,创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get。如果你不清楚,也不必太在意,一般情况下很少用到这个参数);参数proxies用于设置代理(这里不详细讲怎么使用代理,感兴趣的看客可以去翻阅Python手册urllib模块)。urlopen返回 一个类文件对象,他提供了如下方法:
- 参数 url 表示远程数据的路径,一般是 http 或者 ftp 路径。
- 参数 data 表示以 get 或者 post 方式提交到 url 的数据。
- 参数 proxies 表示用于代理的设置。
urlopen 返回一个类文件对象,它提供了如下方法:
- read() , readline() , readlines(),fileno()和close(): 这些方法的使用与文件对象完全一样。
- info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息。
- getcode():返回Http状态码,如果是http请求,200表示请求成功完成;404表示网址未找到。
- geturl():返回请求的url地址。
再看一个例子,这个例子把Google首页的html抓取下来并显示在控制台上:
再运行一下这个例子,以加深对urllib的印象:
2 |
print 'http header:/n' , google.info() |
3 |
print 'http status:' , google.getcode() |
4 |
print 'url:' , google.geturl() |
5 |
for line in google: # 就像在操作本地文件 |
- Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。
Python urllib模块urlopen()与urlretrieve()的使用方法详解 1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...
- Python urllib模块urlopen()与urlretrieve()详解
1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据.参数u ...
- python urllib模块的urlopen()的使用方法及实例
Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...
- 【py网页】urlopen的补充,完美
urllib 是 python 自带的一个抓取网页信息一个接口,他最主要的方法是 urlopen(),是基于 python 的 open() 方法的.下面是主要说明: 1 urllib.urlopen ...
- 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)
定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容.提示(可以了解python的urllib模块) import urllib.request def get_ ...
- 【py网页】urllib.urlretrieve远程下载
下面我们再来看看 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载到本地. 1 >>> help(urllib.urlr ...
- 12月4日学习爬虫007.使用Urllib模块进行简单网页爬取
笔记如下: 1.https是http加强版协议(安全协议)http(普通网络通信协议) 爬数据 如果爬https发现和理想中的数据不同,可以改为http 直接去掉s即可 2.使用Urllib爬取简单网 ...
- 全局变量 urllib模块 json模块
1.vars() 查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
随机推荐
- Linux下/etc/resolv.conf 配置DNS客户
文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数.下面是一个例子文件: search mydom ...
- JS全局函数parseInt和parseFloat
1.parsetInt parseInt(string ,radix)解析一个字符串,并返回一个十进制的整数:该方法是将字符串转成十进制整数 console.log(parseInt("01 ...
- 30天,APP创业从0到1【7.26苏州站】
活动概况 时间:2015年7月26日13:30-16:30 地点:创客巢(苏州吴中区玉山路646号金枫广告产业园B栋4楼) 主办:APICloud.融云.鱼多多 网址:www.apicloud.com ...
- Power-BI For K3 免费版培训与交流!Q群视频培训,绝对干货!
Power-BI For K3 免费版培训与交流!Q群视频培训,绝对干货!1.产品安装与配置:2.产品使用:3.个性化开发(现场提需求现场开发):4.交流互动.时间:2015-12-03(周四)晚8 ...
- git 查看、创建、删除 本地,远程 分支
1. 查看远程分支 git branch -rorigin/master 2. 查看本地分支 git branch *master 注:以*开头指明现在所在的本地分支 3. 查看本地分支和远程分支 g ...
- javascript设计模式学习之四——单例模式,缓存与对象池
单例模式的定义:确保一个实例,并提供全局访问. 惰性单例的定义:只在需要的时候才创建对象. 在开发中,有些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等. java中的单例 关 ...
- SO_REUSEADDR
问题:Linux的服务器程序,关闭后马上启动,经常报错,说是端口已经被占用,不过稍等一会儿就可以启动了. 原来我们在调用closesocket把已绑定端口的socket关闭时,这个socket并没有立 ...
- 查找文件并执行的shell命令
来由 经常我们需要找到某类文件, 并对进行处理. 例如找到.svn文件夹, 然后删除掉. 如果不使用shell,你可以选择手动删除, 前提是没有几个此类文件, 但是svn信息文件很多, 不能采用手动删 ...
- log file switch (checkpoint incomplete)
接手了一个新交接的库,alert日志频繁报告log file switch (checkpoint incomplete)事件 oracle文档解释: Waiting for a log switch ...
- file operation note
从HLE回来,大家拍了2499张照片,分放在N个文件夹下,下面的python将下层目录中文件移动到上层 import os,shutil dst=os.getcwd()+os.sep for path ...