Can I recover TerrainData from a web package?

Unity hung, and after rebooting my terrain is missing, and my script crashes trying to access terrain.terrainData. Presumably the terrainData was corrupted when I rebooted.

I’ve got a web package I built shortly beforehand, is there any way I can extract the terrainData from that and restore it in the editor?

Almost impossible. A webbuild can be unpacked, but the data format is not documented. Also Unity doesn't support importing this format so it would be alot HEX-dump-crawling and if you identified and extracted the data in some way you have to find a way to bring it back into Unity. Probably just create a new terrain of the exact same size / properties and try to exchange the data in the asset database.

But as mentioned it's almost impossible.

résumé: Create backups!