summaryrefslogtreecommitdiff
path: root/digikey_scraping
diff options
context:
space:
mode:
Diffstat (limited to 'digikey_scraping')
-rw-r--r--digikey_scraping/digikey.coffee35
-rwxr-xr-xdigikey_scraping/digikey.js51
2 files changed, 86 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()
diff --git a/digikey_scraping/digikey.js b/digikey_scraping/digikey.js
new file mode 100755
index 0000000..ca4bc81
--- /dev/null
+++ b/digikey_scraping/digikey.js
@@ -0,0 +1,51 @@
+#!/usr/local/phamtomjs-1.6.1/bin/phantomjs
+
+// Generated by CoffeeScript 1.3.3
+(function() {
+ var query_parse, server, service, url, webpage;
+
+ 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, function(request, response) {
+ var page, search, thisUrl, tries;
+ page = webpage.create();
+ search = query_parse.exec(request.url);
+ if (!((search != null) && (search[1] != null))) {
+ 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;
+ return page.open(thisUrl, function(status) {
+ if (status !== "success") {
+ response.statusCode = 503;
+ response.write("MORT ET DESOLATION");
+ return response.close();
+ } else {
+ if (page.evaluate(function() {
+ return typeof test === "function";
+ })) {
+ page.evaluate(function() {
+ return test();
+ });
+ return console.log("TRYING AGAIN (try " + (tries += 1) + ")");
+ } else {
+ response.statusCode = 200;
+ response.write(page.content);
+ return response.close();
+ }
+ }
+ });
+ });
+
+}).call(this);