我正在用Python进行网页抓取,现在我不得不写一个文件来生成HTML输出。
因此,我有一个名为checked_list的列表,其中填充:
['"link of the picture"', 'title event', 'date event']
我尝试制作text1
和text2
,然后制作.write()
,它们都可以工作。我可以显示图片。但是我需要一个for循环来继续读取所有索引,以便可以显示图片事件,标题事件和日期事件。
我尝试使用text1然后使用text1 +=
来编写整个HTML,并且尝试使用text1和text2然后将它们组合在一起,但是我始终找不到使用循环的方法说语法错误。
checked_list
的示例:
checked_list = ['"http://bneart.com/wp-content/uploads/2019/05/3fbf2374-5cb4-4229-a247-78c2582c5105-817x1024.jpg"', 'Lara Merrett: Flip side', '7th - 25th May'] -- > for 1 event
checked_list = ['"http://bneart.com/wp-content/uploads/2019/05/Foliage-and-Structure-black_small-1024x613.jpg"', 'Helen Wyatt: I Walk the Line', '11th May - 13th July', '"http://bneart.com/wp-content/uploads/2019/05/3fbf2374-5cb4-4229-a247-78c2582c5105-817x1024.jpg"', 'Lara Merrett: Flip side', '7th - 25th May'] -- > 2 events
def print_planner():
checked_list = []
index = 0
html_file = open(planner_file, "w")
text1 = '''
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
<tr>
<th>Entertainment List</th>
</tr>
<tr>
'''
text2 = "<td><img src=" + str(checked_list[index]) + ">" "</td></tr>"
'''
</table>
</body>
</html>
'''
html_file.write(text1)
html_file.write(text2)
html_file.close()
有什么主意,我该如何组合其中的循环?要么只使用text1,要么使用text1
和text2
。
只要有效,就可以了。如果您可以看到图片,那么到目前为止,我可以做到。我想在标题下打印标题和日期。
答案 0 :(得分:0)
我认为这正是您想要的。只需在image_exts元组中为您添加更多图像扩展即可。
def print_planner():
image_exts = ('.png', '.jpg', '.gif') # add valid image extensions for you
checked_list = ['data1', 'data2', 'hi', 'picture1.png', 'picture2.png', 'picture3.jpg', 'I am python']
checked_list = map(str, checked_list) # cast everything in str and persist results.
text2 = ''.join(
['<td><img src="{}" /> </td>'.format(src) for src in checked_list for ext in image_exts if src.endswith(ext)]
)
text1 = '''
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
<tr>
<th>Entertainment List</th>
</tr>
<tr>
{}
</tr>
</table>
</table>
</body>
</html>
'''.format(text2)
with open(planner_file, 'w') as f:
# using with statement file-stream will be closed automatically.
f.write(text1)