1. Automatically
There is a convenience function available for AppImages. You do not need to extract the icon manually. All you need to do is: run the optional appimaged daemon (it runs in user space and does not need root privileges). Download it here:
It's bundled as an AppImage, and can be used just like one: make it executable and execute.
This daemon scans a few well-known locations for appimages and extracts icons and creates menu entries automatically for you. (It also removes them again if you delete an AppImage).
It is recommended to keep all your AppImages in a directory you should create: ${HOME}/AppImages
Update: According to a comment by user @TSr, appimaged is deprecated now. I did not check this info.
2. Manually
If you insist to do this manually, you can run (in a terminal!):
./your.AppImage --appimage-extract
This will create a sub-directory called squashfs-root and extract the complete contents of the bundle there. Here you should find what you are looking for.
Warning: this will only work if the AppImage is of type 2 (following the newer AppImage spec). For AppImage type 1, you have to mount the AppImage manually and then copy the icon file from the mounted directory tree:
mkdir /tmp/mountpoint
sudo mount -o loop your.AppImage /tmp/mountpoint
If the icon is missing, the packager of the AppImage did not bother to include it. Complain with him/her then.