有人可以帮助我吗?
我一直在尝试写一个我自己创建的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()
答案 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"],"")