Using Google Apps Script to integrate with import.io

import.io is a nice service I’ve been dipping into for a while. It’s one of a number of services that provides structured web data scraping. One of the nice features of import.io is it:

transform any website into a table of data or an API in minutes without even writing any code

You load a webpage with their web browser app and start highlighting the parts of the page you’d like to extract. Int3rhacktives has a nice How to scrape data without coding? A step by step tutorial on import.io if you want to find out more.
Once you have the data you want extracted import.io continue to try and keep the bar low allowing easy data download in various formats including .csv. and if you want to use live data there are example itegrations for Excel, Google Sheet and other programming languages.
Looking more closely at the Google Sheet integration import.io document a method that uses their REST API’s HTML table output which is then wrapped in a Google Sheet importHTML formula e.g.
=ImportHtml("https://query.import.io/store/connector/48fd118b-7572-44a6-816c-8f02d088fb6a/_query?_user=5895d593-9461-4b8b-8452-95bb82458bd2&_apikey=YOUR_API_KEY&format=HTML&input/webpage/url=http%3A%2F%2Fwww.scoop.it%2Ft%2Fgas", "table", 1)

import.io easy as 1, 2

I’m a big fan of Google Sheet ‘import’ and have some tutorials on these. The ‘import’ formula are useful for quick results but not appropriate if you need to do additional manipulation or integration into other automated workflows. import.io do have a number of client libraries and code examples you can look at to address this but the one I thought was missing was one for Google Apps Script. One of the great strengths of Apps Script is it’s easy to create time-based routines to pull and push data around as and when needed. So based on import.io’s php example here’s what it would look like in Google Apps Script.

You can read the Google Apps Script Documentation to find out more about what you can do with the result.  Something the guys at import.io might want to think about is creating a Google Apps Script Library. Similar to their other client libraries it will again lower the bar for developers. As a starter I’ve implemented the query method here which means anyone creating a Apps Script project and including a library using the Project Key: M2ZyMvVZdgKdy3SaLP8gq3X797_hv7HHb could just use:

function getImportioExample(){
  // Query for tile Integrate Page Example
  var result = importio.query("caff10dc-3bf8-402e-b1b8-c799a77c3e8c", {"searchterm": "avengers 2",}, userGuid, apiKey, false);
  Logger.log(result);
}

with the benefit of also getting a code autocomplete:
autocomplete
If you’ve already got Google Apps Script/import.io integrations I’d love to hear about them. Hopefully I’ll follow-up this post with an example automation to illustrate what is possible.
 

chevron_left
chevron_right

Join the conversation

comment 7 comments
  • SterinMcCollis

    hm, the function doesn’t work like expected. my google scripts log returns: “Bad data formatting in signed URL”,”code”:”BAD_PARAMETER”} (use muteHttpExceptions option to examine full response)”
    Did I misunderstand something? :S

    • Martin Hawksey

      this suggests something is wrong with the passed in data. Without seeing your query it’s hard to debug

    • Brigitte Jellinek (@bjelline)

      URL-Encode your API key when you build your request. that’s what solved the problem for me

  • Kripa

    In this current implementation, we can only query one page results yea? What can we do in order to query for all pages? According to the documentation, they have maxPages parameter for connectors. I am interested in knowing how to use that in that above implementation. Thanks

Comments are closed.

css.php