If you use the KeywordDiscovery API, and Python, my pain is your gain. It took me a few hours to get this to work. You can grab it and go. Here’s the function, written in my usual Python Pigdin. I don’t recommend using it without a passing knowledge of Python, but that’s up to you:
def kwdiscovery(username,password,phraselist): base64string = base64.encodestring('%s:%s' % (username, password))[:-1] authheader = "Basic %s" % base64string apiurl = "http://api.keyworddiscovery.com/queries.php?queries=" separator = "%0D%0A" counter = 1 for phrase in phraselist: # make sure there's no funny characters try: phrase.decode('ascii') except UnicodeDecodeError: continue phrase = phrase.replace(" ","+") phrase = phrase.replace("n","") if (counter > 1): apiurl = apiurl + separator + phrase else: apiurl = apiurl + phrase counter = counter + 1 apiurl = apiurl + "&empty=1" req = urllib2.Request(apiurl) req.add_header("Authorization", authheader) blah = urllib2.urlopen(req) # because sometimes, things just go wrong try: result = ET.parse(blah) resultlist =  lst = result.findall("r") for item in lst: this = item.attrib["q"],item.attrib["m"] resultlist.append(this) except: this = "__one of the words in this request caused an error:",apiurl resultlist = [this] return resultlist
And here’s how you’d use the function:
#!/usr/bin/python import string import sys import httplib import urllib2 from urllib2 import Request, urlopen, URLError import xml.etree.ElementTree as ET import base64 f = open('longw.txt','r') g = open('words_countedlongtail.txt','w') words = f.readlines() username = "ENTER KEYWORDDISCOVERY USERNAME HERE" password = "ENTER KEYWORDDISCOVERY PASSWORD HERE" start = 0 count = len(words) while (count > 0): count = count - 9 end = start + 9 a = words[start:end] print "sent ",a resultlist = kwdiscovery(username,password,a) for l in resultlist: q = str(l) m = str(l) line = q + "t" + m + "n" g.write(line) print "received ",line start = end f.close() g.close()
Who knows, I might even create a web interface one of these days. In my spare time.