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)
  • 相关阅读:
    预习十进制数的表示 & 非数值数据的编码表示 & 数据的宽度和储存 & 数据校验码*
    预习原码补码移码
    C语言||作业01 结构:通讯录
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言||作业01 结构:通讯录
    C语言寒假大作战04
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/appium/p/4587966.html
Copyright © 2011-2022 走看看