zoukankan      html  css  js  c++  java
  • 下载保存图片

    今天要下载很多张图片,手动麻烦,于是写了个小程序。期间遇到不少问题。

    最主要的一个是,访问某些网页会返回403 Forbidden,后来在加入了header信息之后得到解决。记录下。

    这里用到了正则,urllib网页编程等知识。好久没用了,算是复习。

     

    代码
    # -*- encoding:UTF-8 -*-

    import re,urllib2

    def getPage(url):
    '''下载文件html代码,找出一楼的核心代码'''
    opener
    = urllib2.build_opener()
    #不加头信息则出现403错误和乱码
    opener.addheaders = [('User-agent', 'Mozilla/5.0')];
    htmlAll
    = opener.open( url ).read()
    reg1Floor
    = '<div class="msgfont">(.*?)</div>'
    html
    = re.search(reg1Floor,htmlAll)
    html
    = html.group()
    #文件保存编码和文件编辑编码都是utf-8,所以decode一次,不然会出现乱码,但是不影响结果。
    return html.decode('utf-8')

    def getImg(url):
    '''从核心代码中照图图片地址,并且下载保存、命名'''
    regImg
    = '<img src="(.*?)" alt="" />'
    dir
    = 'F:\\My_Document\\Desktop\\temp\\'
    pageHtml
    = getPage(url)
    #找到所有图片地址
    imglist = re.findall(regImg,pageHtml)
    #print imglist
    for index in xrange(1,len(imglist)+1):
    finename
    = dir + str(index) + '.jpg'
    urllib.urlretrieve(imglist[index
    -1], finename)
    print finename + ' ok!'


    if __name__ == '__main__':
    getImg(
    'http://topic.csdn.net/u/20101013/11/024465A6-8E16-444C-9A09-DD374D29044C.html')

  • 相关阅读:
    PL/SQL中判断字段为空
    ArrayList知识详解
    那些碰到过的异常
    Java中的==和equals( )方法
    String,StringBuilder和StringBuffer
    树莓派3b+_32位linux系统arm架构安装JDK
    [杂]右键拷贝文件路径
    [023]模板成员函数为什么不能是虚函数
    [杂]几个好玩的网址
    [022]c++虚函数、多态性与虚表
  • 原文地址:https://www.cnblogs.com/lexus/p/1853913.html
Copyright © 2011-2022 走看看