网页分析实现批量下载

转载 2007年09月13日 09:49:00




from sgmllib import SGMLParser
from string import find, replace, rjust
from threading import Thread
import urllib

__author__ = "Chen Peng (peng.ch@hotmail.com)"
__version__ = "$Revision: 1.0 $"
__date__ = "$Date: 2006/03/03 $"
__copyright__ = "Copyright (c) 2006 Chen Peng"
__license__ = "Python"
__all__ = ["Gif_163_Parser"]

class PDownloadThread( Thread ):
    
"""
    Download the files in the dict and save them to local files with the given name
    
"""
    
def __init__( self, DictList,i ):
        Thread.
__init__( self )
        self.DictList 
= DictList
        self.pageno 
= str(i)
  
    
def run( self ):
        
for k in self.DictList.keys():
            
try:
                
print 'Download' + self.DictList[k] + '......'
                uFile 
= urllib.urlretrieve( self.DictList[k], './files/' + k + '.' + self.DictList[k].split('.')[self.DictList[k].split('.').__len__() - 1])
            
except :
                logfile 
= open('error.log''a')
                logfile.write(self.pageno 
+ ' ' + self.DictList[k] + '   ' + k + ' ')
                logfile.close() 
            
print 'Save to file ' + k

class Gif_163_Parser( SGMLParser ):
    
"""
    任务:下载163彩图
    原理:http://mms.163.com/new_web/cm_lv2_pic.jsp?catID=&ord=dDate&page=2&type=1&key=
        从1到415页(共6637)分析得到如下路径:“/fgwx/hhsj/1_060302175613_186/128x128.gif”
    eg:<script>showPic('22930','1','/fgwx/hhsj/1_060302175613_186/128x128.gif', '1','编号:22930 名字: 因为有你 人气:100');</script>     
    下载路径:http://mmsimg.163.com/new_web/loaditem.jsp/type=1/path=/fgwx/llfj/1_060302175612_995/176x176.gif
    
"""
    
def reset( self ):                             
        SGMLParser.reset( self )
        self.headURL
='http://mmsimg.163.com/new_web/loaditem.jsp/type=1/path='
        self.SubURL 
= []
        self.Links 
= {}
         
    
def start_script( self, attrs ):
        
#self.SubURL.extend( [' %s="%s"' % ( key, value ) for key, value in attrs] )
        pass

    
def end_script( self ):
        
pass
  
    
def handle_data( self, text ):
        
if find( text, 'showPic' )!=-1:
            self.Links[replace( text.split( 
'/n' )[1], 'Ãû×Ö: ''' )]=self.headURL+replace ( text.split( ',' )[2], ''''' );
           
    
def Execute( self ):  
        
for i in range( 1415 ):
            self.Links.clear
            
try:
                usock 
= urllib.urlopen( "http://mms.163.com/new_web/cm_lv2_pic.jsp?catID=&ord=dDate&page=" + str(i) + "&type=1&key=" )
                self.feed( usock.read() )
                usock.close()
                TestThread
=PDownloadThread( self.Links ,i )
                TestThread.start()
                self.close()
            
except IOError:
                
pass   
        
#print ( ["%s=%sn"% ( k, self.Links[k] ) for k in self.Links.keys()] )
        #print self.Links

if __name__ == '__main__':
    
#Gif_163_Parser().Execute()
    testtask=Gif_163_Parser()
    testtask.Execute()



 

相关文章推荐

java中用jsoup抓取网页源码,并批量下载图片

一、导入jsoup的核心jar包jsoup-xxx.jar jar包下载地址:jsoup-1.8.2.jar        中文API地址:http://www.open-open.com/jsoup...

批量下载网页中所有的PDF文档

某日要下载网页中所有的PDF文档,大约400个。作为计算机专业的学生,显然不能手工去下载啊!!!于是在网上找到了相关的批量下载文档脚本,众里寻他千百度,终于在一篇博客http://blog.csdn....

cacheCopy:让你能批量下载网页中的图片和壁纸

许多时候,网页中会有很多漂亮的壁纸和图片,但想要全部保存的话却是一个体力活,运气不好些的话,有些网站上的图片还不能够保存,因为在图片上会有一个透明层,导致右键菜单中没有图片另存为菜单项失效。相信这些问...
  • cb3000
  • cb3000
  • 2012年03月24日 20:22
  • 433

python批量下载网页图片及列表

背景: 放假在家里没事鼓捣了一个用python实现的简单网页信息抓取的程序。 demo功能: 将千图网的商业海报http://www.58pic.com/topic/419-1.html的(海报名字 ...

perl 网页图片批量下载

  • 2014年12月12日 15:20
  • 2KB
  • 下载

批量网页结构化信息下载

  • 2013年05月02日 10:54
  • 5KB
  • 下载

网页实现批量数据导入功能

场景        我有一批平铺数据放在txt文件,其量大概在10W条,接下来我们希望将这10W条记录进行切割获取,并且将单条数据分析校验,然后插入到DB中。前提是我们使用的是HTTP文件上传方式来...

JAVA爬虫批量下载网页文件

  • 2017年08月07日 15:15
  • 13KB
  • 下载

用生产者消费者模式实现爬虫批量提交网页给搜索引擎

业务:爬取国内部分招聘网站的职位信息。。当爬虫线程抓取到的页面数据到一定量时或者一定时间内。提交给搜索引擎solr(提高 索引性能)。循环爬行操作。。从而实现更高的资源利用率。。思路:N个线程爬虫作为...

网页实现批量数据导入功能

场景我有一批平铺数据放在txt文件,其量大概在10W条,接下来我们希望将这10W条记录进行切割获取,并且将单条数据分析校验,然后插入到DB中。前提是我们使用的是HTTP文件上传方式来导入数据。现在的问...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网页分析实现批量下载
举报原因:
原因补充:

(最多只允许输入30个字)