Cliquez ici pour les spécifications de l'API DMM https://affiliate.dmm.com/api/ Il renvoie juste du XML, vous pouvez donc l'analyser ou ce que vous voulez ...
#coding:utf-8
import urllib2
import time
"""
Obtenez des informations sur le produit à l'aide de l'API DMM
"""
class Dmm:
def __init__(self, api_id, affiliate_id):
"""constructeur"""
self.baseurl = "http://affiliate-api.dmm.com/"
self.proxy_host = None
self.proxy_port = None
self.api_id = api_id
self.affiliate_id = affiliate_id
self.version = "1.0.0"
self.site = 'DMM.co.jp'
self.service = 'digital'
self.operation = 'ItemList'
self.url = None
def setProxy(self, host, port=8080):
"""Définir le proxy"""
self.proxy_host = host
self.proxy_port = port
def setVersion(self, version):
"""Définir la version"""
self.version = version
def setSite(self, site):
"""Définir le site"""
self.site = site
def setService(self, service):
"""Service de jeu"""
self.service = service
def keywordSearch(self, keyword, **options):
"""Rechercher des articles"""
params = options
params["keyword"] = keyword
return unicode(self.sendRequest(params),'euc-jp')
#return self.buildURL(params)
def buildURL(self, params):
"""Créer une adresse URL de requête REST"""
params["api_id"] = self.api_id
params["affiliate_id"] = self.affiliate_id
params["version"] = self.version
params["site"] = self.site
params["service"] = self.service
params["operation"] = self.operation
params["timestamp"] = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
sorted_params = sorted(params.items())
#Développez le hachage des paramètres
request = []
for p in sorted_params:
pair = "%s=%s" % (p[0], urllib2.quote(p[1].encode("euc-jp")))
request.append(pair)
url = self.baseurl + "?" + "&".join(request)
return url
def sendRequest(self, params):
"""Envoyez une requête à DMM et renvoyez le XML récupéré"""
self.url = self.buildURL(params)
if self.proxy_host:
proxy_handler = urllib2.ProxyHandler({"http":"http://%s:%s/" % (self.proxy_host, self.proxy_port)})
opener = urllib2.build_opener(proxy_handler)
else:
opener = urllib2.build_opener()
return opener.open(self.url).read()
def _test():
dmm = Dmm('Clé API', 'Code Affi')
print dmm.keywordSearch('sex',hits='100')
if __name__ == '__main__':
_test()
Recommended Posts