zoukankan      html  css  js  c++  java
  • python学习之小小爬虫

    学习python一段时间了,写了一个图片的小小爬虫,分享下,不喜勿喷!

    #coding=utf-8
    '''
    Created on 2015-5-22
    
    @author: 悦文
    '''
    
    import re
    import urllib
    
    def getHtml(url): #第一次忘写了参数,⊙�⊙b汗
        html=urllib.urlopen(url) #获取给定网址的页面源代码,是一个对象文件
        pageContent=html.read()  #读取网页文件中的内容
        #html.close() #关闭sockit
        return pageContent #返回读取网页文件中的内容
        #print url.geturl() #打印请求的网址
        #print pageContent
    
    def callbackfunc(blocknum, blocksize, totalsize):
        '''回调函数
        @blocknum: 已经下载的数据块
        @blocksize: 数据块的大小
        @totalsize: 远程文件的大小
        '''
        percent = 100.0 * blocknum * blocksize / totalsize
        if percent > 100:
            percent = 100
            print "--------------------------------------------------------------------------"
            print "                             小图一张已到手                                  "
            print "--------------------------------------------------------------------------"
        print "%.2f%%"% percent
    
    
    def getImg(pageContent,callbackfunc):
        #查找图片的正则表达式
        src=r'zoomfile="(http://img..+.jpg)" file' # @坑1,之前没有加 file,导致从zoomfile开始所有的字符串全都匹配
        srcm=re.compile(src)
        getImgSrc=re.findall(srcm,pageContent)
        #image_test_len=len(getImgSrc)
        #print getImgSrc
        name=260
        #逐条获得图片地址并下载
        for image in getImgSrc:
            urllib.urlretrieve(image,"E:\python\%s.jpg"% name,callbackfunc)
            name+=1
        #return image_test_len
    
    if __name__=='__main__':
        pageContent=getHtml("http://old.nr99.com/thread-123208-1-2.html")
        getImg(pageContent,callbackfunc)
  • 相关阅读:
    10、函数介绍、函数参数、函数的返回值
    9、bytes类型,文件处理
    8、集合类型、文件处理
    7、列表类型、元组、字典类型
    6、for循环补充、可变类型与不可变类型、基本操作
    5、while循环与for循环
    4、基本运算符、if语法
    3、变量、常量、基本数据类型
    爬虫(一)
    小技能(二)
  • 原文地址:https://www.cnblogs.com/appium/p/4587966.html
Copyright © 2011-2022 走看看