Only render Frames with Markers (one camera only)
Sort of compilation from various answers (only tested in 2.79):

import bpy

scene = bpy.context.scene

# get existing output path
fp = scene.render.filepath

# set output format to .png
scene.render.image_settings.file_format = 'PNG'

marker_frames = [m.frame for m in scene.timeline_markers]
#print(marker_frames)

for m_f in marker_frames:

    # set marker as current frame
    scene.frame_set(m_f)

    # set output path so render won't get overwritten
    scene.render.filepath = fp + str(m_f)
    bpy.ops.render.render(write_still=True) # render still

# restore the filepath
scene.render.filepath = fp