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.
03 >>> import urllib
04 >>> google = urllib.urlopen('http://www.google.com')
05 >>> print 'http header:\n',google.info()
06 http header:
07 Date: Wed, 30 Oct 2013 03:11:44 GMT
08 Expires: -1
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
13 P3P: CP="This is not a P3P policy! Seehttp://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657for more info."
14 Server: gws
15 X-XSS-Protection: 1; mode=block
16 X-Frame-Options: SAMEORIGIN
17 Alternate-Protocol: 80:quic
18  
19 >>> print 'http status:',google.getcode()
20 http status: 200
21 >>> print 'url:',google.geturl()
22 url: http://www.google.com.hk/
23 >>>

上面主要用到了 urllib 库里的 urlopen() 函数。我们可以了解一下这个函数。

继续使用 Python Shell:

1 >>> help(urllib.urlopen)
2 Help on function urlopen in module urllib:
3  
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抓取下来并显示在控制台上:

1 # 别惊讶,整个程序确实只用了两行代码 
2 import urllib 
3 print urllib.urlopen('http://www.google.com').read()

再运行一下这个例子,以加深对urllib的印象:

1 google = urllib.urlopen('http://www.google.com') 
2 print 'http header:/n', google.info() 
3 print 'http status:', google.getcode() 
4 print 'url:', google.geturl() 
5 for line in google: # 就像在操作本地文件 
6     print line, 
7 google.close() 

【py网页】urllib模块,urlopen的更多相关文章

  1. Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。

    Python urllib模块urlopen()与urlretrieve()的使用方法详解   1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...

  2. Python urllib模块urlopen()与urlretrieve()详解

    1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据.参数u ...

  3. python urllib模块的urlopen()的使用方法及实例

    Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...

  4. 【py网页】urlopen的补充,完美

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

  5. 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)

    定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容.提示(可以了解python的urllib模块) import urllib.request def get_ ...

  6. 【py网页】urllib.urlretrieve远程下载

    下面我们再来看看 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载到本地. 1 >>> help(urllib.urlr ...

  7. 12月4日学习爬虫007.使用Urllib模块进行简单网页爬取

    笔记如下: 1.https是http加强版协议(安全协议)http(普通网络通信协议) 爬数据 如果爬https发现和理想中的数据不同,可以改为http 直接去掉s即可 2.使用Urllib爬取简单网 ...

  8. 全局变量 urllib模块 json模块

    1.vars()  查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...

  9. Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

    Python第十三天   django 1.6   导入模板   定义数据模型   访问数据库   GET和POST方法    SimpleCMDB项目   urllib模块   urllib2模块 ...

随机推荐

  1. UIPickerView 循环滚动(一种假象)

    因为网上没有查到相关方法,故而采用一种假象的方法来实现,选项循环滚动 - (void)viewDidLoad { [super viewDidLoad]; /** UIPickerView 选择器 * ...

  2. jQuery动态对表格Table进行添加或删除行以及修改列值操作

    jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...

  3. http://www.cnblogs.com/littlemonk/p/5705476.html

    http://www.cnblogs.com/littlemonk/p/5705476.html

  4. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  5. js 如何清除setinterval

    var id=window.setInterval(function(){ },1000);window.clearInterval(id);

  6. linux 文件权限 初级

    sudo lsattr /etc/sudoers  查看属性 sudo vi index.html 以root权限编辑文件

  7. SQLSERVER 数据库查看各表的记录数

    select   a.name as 表名,max(b.rows) as 记录条数   from   sysobjects   a   ,sysindexes   b       where   a. ...

  8. RabbitMQ学习总结 第五篇:路由Routing

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  9. ios runtime swizzle

    ios runtime swizzle @implementation NSObject(Extension) + (void)swizzleClassMethod:(Class)class orig ...

  10. Spring Boot 1 创建Demo

    Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成和XML配置的要求 入门操作: 1.打开ht ...