# Should be obsolete, keeping around for reference from urllib2 import Request, urlopen, URLError coll_req = Request('http://www.boardgamegeek.com/xmlapi2/collection?username=selwyth') item_req = Request('http://www.boardgamegeek.com/xmlapi2/thing?id=53223') item_req2 = Request('http://www.boardgamegeek.com/xmlapi2/thing?id=53223,53243') print 'type of coll_req is %s' % type(coll_req) response = urlopen(coll_req) print 'type of response is %s' % type(response) coll_output = response.read() print 'type of coll_output is %s' % type(coll_output) # trying this out # import requests # query_string = 'http://www.boardgamegeek.com/xmlapi2/thing?id={}'.format() # bggapi = requests.get(query_string) # print(bggapi.text) def coll(user): # return collection for any user xml_string = 'http://www.boardgamegeek.com/xmlapi2/collection?username={}'.format(user) coll_req = Request(xml_string) response = urlopen(coll_req) return response.read() print coll('selwyth') import time def coll_final(user): # return collection for any user (building off base earlier), but wait 1 second and retry if error for i in range(10): # try 10 times coll(user) if coll(user).find("Please try again later for access.") > -1: time.sleep(1) i += 1 continue else: print '# of query attempts is {}'.format(i) return coll(user) break test = coll_final('blindspot') from lxml import etree parsed = etree.fromstring(test) for i in parsed: print i.items() parsed