python将jpg文件写入新的html文件

时间:2015-10-17 19:06:29

标签: python html file jpeg

有人可以帮助我吗?

我一直在尝试写一个我自己创建的html文件,一堆jpg文件只是为了显示它们,但我似乎无法做任何事情,并且在我到达任何地方之前都有很多错误... 任何人都可以请求帮助,我没有python的html经验。

以下是代码:

def download_images(img_urls, dest_dir):
#html_file = open("index.html", 'rb')
html_file = open("index.html", 'w')

print("Retrieving...")
html_file.write("""<verbatim>""")
html_file.write("""<html>""")
html_file.write("""<body>""")

for url,i in zip(img_urls,range(len(img_urls))):
  image_opened = urllib.request.urlopen(url)
  urllib.request.urlretrieve(url, "img" + str(i) + ".jpg")
  img_tag = r'"""<img"""' + str(i) + r' src="/edu/python/exercises/img' + str(i) + r'"""">"""'.format(urllib.request.urlretrieve(url, "img" + str(i) + ".jpg"))
  html_file = open("index.html", 'w')
  html_file.write(urllib.request.urlretrieve(url, "img" + str(i) + ".jpg"))
  #print('<img' + str(i) + ' src="/edu/python/exercises/img"' + str(i) + '>')

html_file.write(r""""</body>""""")
html_file.write("""</html>""")
html_file.close()

1 个答案:

答案 0 :(得分:1)

到目前为止,我将介绍你所拥有的内容并对其进行评论。

前几位看起来没问题,直到

image_opened = urllib.request.urlopen(url)

这一行打开了一条到所请求网址的流,你没有对此做任何事情,你在下载图像时不需要它:

urllib.request.urlretrieve(url, "img" + str(i) + ".jpg")

然后创建html img行,你已经过分复杂了。您正在尝试生成一条如下所示的行:

<img src='img1.jpg' />

你似乎在做什么:

img_tag = r'"""<img"""' + str(i) + r' src="/edu/python/exercises/img' + str(i) + r'"""">"""'.format(urllib.request.urlretrieve(url, "img" + str(i) + ".jpg"))

开始创建正确的字符串,然后再次尝试下载jpg。您只需要按如下方式创建字符串:

img_tag = "<img src='src" + str(i) + ".jpg' />"

然后使用以下命令再次打开html输出文件:

html_file = open("index.html", 'w')

您不需要执行此操作,因为在方法开头打开文件时仍然打开文件。

然后尝试将html字符串写入文件;

html_file.write(urllib.request.urlretrieve(url, "img" + str(i) + ".jpg"))

而是尝试再次下载jpg并将结果输出到html文件中。相反,您希望通过以下方式编写img_tag

html_file.write(img_tag)

你写好文件的结尾并关闭它。

html_file.write(r""""</body>""""")
html_file.write("""</html>""")
html_file.close()

修复此问题后,您应该拥有一个如下所示的函数:

import urllib.request

def download_images(img_urls, dest_dir):
    #html_file = open("index.html", 'rb')
    html_file = open("index.html", 'w')

    print("Retrieving...")
    html_file.write("<html>")
    html_file.write("<body>")

     for url,i in zip(img_urls,range(len(img_urls))):
        urllib.request.urlretrieve(url, "img" + str(i) + ".jpg") # Downloads image
        img_tag = "<img src='img" + str(i) + ".jpg' />"
        html_file.write(img_tag)

    html_file.write("</body>")
    html_file.write("</html>")
    html_file.close()

您可以使用以下内容拨打电话:

download_images(["a.jpg","b.jpg"],"")