diff options
Diffstat (limited to 'digikey_scraping/digikey.coffee')
-rw-r--r-- | digikey_scraping/digikey.coffee | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/digikey_scraping/digikey.coffee b/digikey_scraping/digikey.coffee new file mode 100644 index 0000000..f1a9580 --- /dev/null +++ b/digikey_scraping/digikey.coffee @@ -0,0 +1,35 @@ +webpage = require('webpage') +server = require('webserver').create() +query_parse = /search\/([^&]+)/ + +url = 'http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=' + +service = server.listen 8086, (request, response) -> + page = webpage.create() + + search = query_parse.exec request.url + + unless search? and search[1]? + console.log "Invalid URL: "+request.url + response.statusCode = 404 + response.write "try search/componentname" + response.close() + return + + console.log search[1] + + thisUrl = url + search[1] + tries = 0 + page.open thisUrl, (status) -> + if status != "success" + response.statusCode = 503 + response.write "MORT ET DESOLATION" + response.close() + else + if page.evaluate(-> typeof test == "function") + page.evaluate -> test() + console.log "TRYING AGAIN (try " + (tries += 1) + ")" + else + response.statusCode = 200 + response.write page.content + response.close() |