ホームページ >バックエンド開発 >Python チュートリアル >Python が Web サイトの画像を取得する

Python が Web サイトの画像を取得する

巴扎黑
巴扎黑オリジナル
2016-12-09 11:27:561272ブラウズ

# 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("获取图片操作完成")

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。