Python code to grab KeywordDiscovery API data

 Python code to grab KeywordDiscovery API data
 Python code to grab KeywordDiscovery API data

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[0]) 		m = str(l[1]) 		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.

Related and recent

company internet marketing internet marketing how to home internet marketing internet marketing careers

Category: Uncategorized | Tags: , , , , , , , , , , , , , Comment »


Leave a Reply



Back to top