利用Python抓取和解析网页(4)

利用Python抓取和解析网页(二)(4)

中国互联网络资讯网提示: 对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事

中国互联网络资讯网提示: 对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档。

  四、从HTML文档中提取Cookies

  很多时候,我们都需要处理Cookie,幸运的是Python语言的cookielib模块为我们提供了许多自动处理在HTML中的HTTP Cookie的类。当处理要求为客户端设置Cookie的HTML文档的时候,这些类对我们非常有用。

   import  urllib2

  
import  cookielib

  
from  urllib2  import  urlopen, Request

  cJar 
=  cookielib.LWPCookieJar()

  opener
= urllib2.build_opener( \

  urllib2.HTTPCookieProcessor(cJar))

  urllib2.install_opener(opener)

  r 
=  Request(testURL)

  h 
=  urlopen(r)

  
for  ind, cookie  in  enumerate(cJar):

  
print   " %d - %s "   %  (ind, cookie)

  cJar.save(cookieFile)

  为了从HTML文档提取cookies,首先得使用cookielib模块的LWPCookieJar()函数创建一个cookie jar的实例。LWPCookieJar()函数将返回一个对象,该对象可以从硬盘加载Cookie,同时还能向硬盘存放Cookie。

  接下来,使用urllib2模块的build_opener([handler, . . .])函数创建一个opener对象,当HTML文件打开时该对象将处理cookies。函数build_opener可以接收零个或多个处理程序(这些程序将按照它们被指定的顺序连接在一起)作为参数并返回一个。

  注意,如果想让urlopen()使用opener对象来打开HTML文件的话,可以调用install_opener(opener)函数,并将opener对象传给它。否则,请使用opener对象的open(url)函数来打开HTML文件。

  一旦已经创建并安装了opener对象,就可以使用urllib2模块中的Request(url)函数来创建一个Request对象,然后就能使用urlopen(Request)函数来打开HTML文件了。

  打开HTML页面后,该页面的所有Cookie将被存放到LWPCookieJar对象中,之后,您可以使用LWPCookieJar对象的save(filename)函数了。

   import  os

  
import  urllib2

  
import  cookielib

  
from  urllib2  import  urlopen, Request

  cookieFile 
=   " cookies.dat "

  testURL 
=   ' http://maps.google.com/ '

  
# 为cookie jar 创建实例

  cJar 
=  cookielib.LWPCookieJar()

  
# 创建HTTPCookieProcessor的opener对象

  opener 
=  urllib2.build_opener( \

  urllib2.HTTPCookieProcessor(cJar))

  
# 安装HTTPCookieProcessor的opener

  urllib2.install_opener(opener)

  
# 创建一个Request对象

  r 
=  Request(testURL)

  
# 打开HTML文件

  h 
=  urlopen(r)

  
print   " 页面的头部\n====================== "

  
print  h.info()

  
print   " 页面的Cookies\n====================== "

  
for  ind, cookie  in  enumerate(cJar):

  
print   " %d - %s "   %  (ind, cookie)

  
# 保存cookies

  cJar.save(cookieFile)

  上述代码的运行结果如下所示:

  页面的头部

  
======================

  Cache
- Control: private

  Content
- Type: text / html; charset = ISO - 8859 - 1

  Set
- Cookie: PREF = ID = 5d9692b55f029733:NW = 1 :TM = 1246015608 :LM = 1246015608 :S = frfx -- b3xt73TaEA; expires = Sun,  26 - Jun - 2011   11 : 26 : 48  GMT; path =/ ; domain = .google.com

  Date: Fri, 
26  Jun  2009   11 : 26 : 48  GMT

  Server: mfe

  Expires: Fri, 
26  Jun  2009   11 : 26 : 48  GMT

  Transfer
- Encoding: chunked

  Connection: close

  页面的Cookies

  
======================

  0 
-
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值