Apple - Saving a Safari page as a PNG image
Not sure when it got added, but certainly in Safari 12 you can do this without any extensions. You need to enable the Safari Developer menu (tick in advanced settings). Now you can select "Show Web Inspector" in the "Develop" menu which will open a window showing the page source. Hover your cursor over the tag and right click it. Then, select the "Capture screenshot" option and save when prompted.
If you only want a specific element, just right click on the appropriate bit of html. If you are not sure, as you hover over the code the corresponding screen element is highlighted blue.
Of course, I'm now wondering if this could be apple scripted...
Try Paparazzi! It can save the entire website to a single png file and it lets you specify the size. Once installed, you can also launch it from within Safari by adding 'paparazzi:' to the URL. For example paparazzi:http://www.nytimes.com
webkit2png should be pretty close to Safari. It also works with webarchive files saved from Safari.
$ webkit2png -F http://apple.stackexchange.com/questions/30637 -o nameprefix
Fetching http://apple.stackexchange.com/questions/30637 ...
... done
$ webkit2png ~/Downloads/test.webarchive
Fetching ~/Downloads/test.webarchive ...
... done
$ ls
0testwebarchive-clipped.png 0testwebarchive-thumb.png
0testwebarchive-full.png nameprefix-full.png
Awesome Screenshot is an extension for that should support full page screenshots. I couldn't get them to work with all pages though.