python实践 - 抓取网页中的图片和数据

主要是用了SGMLParser和urllib模块

# !/usr/lib/python
#
 getimg.py
import  sys,os
from  sgmllib  import  SGMLParser
type 
=  sys.getfilesystemencoding()

class  URLLister(SGMLParser):
        
def  reset(self):                              
            SGMLParser.reset(self)
            self.is_Contant
= ""
            
            self.titles
= []
            self.imgs
= []     
        
def  start_div(self, attrs):
            href 
=  [v  for  k, v  in  attrs  if  k == ' class '
            
if  href:
                
if  href[0]  ==   ' posttitle ' :
                    self.is_Contant
= 1        
        
def  end_div(self):    
            self.is_Contant
= ""
        
def  start_img(self,attrs):
            href 
=  [self.imgs.append(v)  for  k, v  in  attrs  if  k == ' src ' ]
        
def  handle_data(self, text):
            
if  self.is_Contant:
                text 
=  text.decode( ' UTF-8 ' ).encode(type)
                self.titles.append(text)
    
if   __name__   ==   " __main__ " :
    
import  urllib
    u 
=   ' http://www.cnblogs.com '
    usock 
=  urllib.urlopen(u)
    parser 
=  URLLister()
    parser.feed(usock.read())
    usock.close()
    parser.close()
    f 
=  file( ' result.txt ' ' w ' )  
    
for  title  in  parser.titles:
        
print  title
        f.write(title
+ ' \r\n ' )
    
for  img  in  parser.imgs:
        urllib.urlretrieve((
''   if  img.find( ' http:// ' ) == else  u) + img, ' d:/tmp/ ' + img.split( ' / ' )[ - 1 ])
    f.close() 
     

上面的代码将主题保存到了当前目录的result.txt文件里

所有的图片保存到了d:/tmp/目录

 

转载于:https://www.cnblogs.com/uwebs/archive/2009/04/30/1446797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值