Update scraper to handle relative links

Added a few exceptions for fallback in case of failure to extract file
extension. Seems the JSON response doesn't always include it. Added a
method for ensuring that the file link includes a protocol, meaning it's
absolute. If it isn't, the scraper uses its configured host.