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

python writing jpg files into a new html file

有人可以帮帮我吗?

我一直在尝试在自己创建的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()

我会仔细检查你目前的情况并发表评论。

前几位在

之前看起来还不错
image_opened = urllib.request.urlopen(url)

此行打开请求的流 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 by:

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"],"")