Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Accéder aux variables d'un callback

+1 vote

J'apprends à utiliser requests-future:

session = FuturesSession() 
urls={'ga' : 'http://devin-plobier.fr', 'bu' : 'http://marin-shadok.fr' }
result={}

def parse_response(future):
    response=future.result()
    html=response.text
    soup = BeautifulSoup(html)
    link=soup.find('a')
    result[name]=link

for name, link on urls.items():
    future=session.get(link)
    future.add_done_callback(parse_response)

Mon dictionnaire result revient désespérément vide, suis-je obligé d'utiliser global ou y a t-il une solution plus "propre" ?

demandé 25-Fev-2015 par pyNo
edité 25-Fev-2015 par max

Si la réponse t'as aidé, clique sur "accepter", ça donne des points à l'auteur.

1 Réponse

+3 votes
session = FuturesSession() 
urls={'ga' : 'http://devin-plobier.fr', 'bu' : 'http://marin-shadok.fr' }

def parse_response(sess,resp):
    html=resp.text
    soup = BeautifulSoup(html)
    link=soup.find('a')
    resp.data=link

dict_future={}

for name, link on urls.items():
    dict_future[name]=session.get(link, background_callback=parse_response)

for name, future on dict_future.items():
    response=future.result()
    result[name]=response.data

La simplicité paie. (aux hommes de bonne volonté)
Amen.

répondu 25-Fev-2015 par PyNo
edité 25-Fev-2015 par max

Si ta réponse convient accepte la, ça fermera la question et ça servira pour les prochaines personnes qui viendront sur cette page.

...