欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

python获取网站图片

程序员文章站 2024-01-17 18:24:40
...
# zhouxianglh 2013.05.03 python3.3
import urllib.request
from html.parser import HTMLParser
import re
import os
import shutil
import time
url = "http://www.douban.com/"
filePath = "D:\\temp"
# 读也HTML
urlContent = urllib.request.urlopen(url);
data = str(urlContent.read())
# 初始化文件目录
if  os.path.isdir(filePath):
#     os.removedirs(filePath)
    shutil.rmtree(filePath)
elif os.path.isfile(filePath):
    os.remove(filePath)
os.makedirs(filePath)
# 生成唯一文件名
intFlag = 0
def getTimeStr():
    global intFlag
    intFlag = intFlag + 1
    return time.strftime("%H%M%S") + str(intFlag)
# 解析HTML
# HTMLParser方式解析,这里HTMLParser类似于抽象类
class MyHtmlParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        '获取 img标签'
        if tag == "img" :
            for imageUrl in attrs:
                '获取src属性'
                if imageUrl[0] == 'src':
                    imageUrl = imageUrl[1]
                    imageUrl = re.sub("[\\\\']", "", imageUrl)
                    iamgeUrlArr = imageUrl.split("/")
                    imgFilePath = iamgeUrlArr[len(iamgeUrlArr) - 1]
                    try:
                        imgData = urllib.request.urlopen(imageUrl).read()
                        imgFilePath = filePath + os.sep + imgFilePath + getTimeStr() + ".jpg"
                        imageFile = open(imgFilePath, "wb")
                        imageFile.write(imgData)
                        imageFile.close()
                        print("下载文件", imageUrl, "成功,另存路径:" + imgFilePath)
                    except  :
                        print("****下载文件 ", imageUrl, " 出错:")
parser = MyHtmlParser()
# 解析HTML
parser.feed(data)
print("获取图片操作完成")