2011-10-28 8 views
1

Est-il possible de se connecter à un site Web (et permettre à ce site d'être visité avec un navigateur sans que l'utilisateur ne doive s'y connecter) via un processus en arrière-plan sans interaction avec l'utilisateur? ?Connexion logicielle à un utilisateur?

Je suppose que j'aurais besoin d'enregistrer la session créée avec chaque navigateur web sur le système de l'utilisateur, mais y a-t-il une autre façon (peut-être plus simple) de le faire? Imaginez-vous comme une connexion automatique à Gmail en arrière-plan et la possibilité de la parcourir sans avoir jamais vu une page de connexion.

+0

Vous pouvez, théoriquement, faire une demande boucle sur le site avec un POST approprié, puis stocker l'ID de session dans un cookie ou un autre que vous passez ensuite à chaque navigateur que vous utilisez. Je ne serais pas surpris si les différents navigateurs avaient des contraintes de formatage différentes, ce qui pourrait être problématique. –

+0

@ agam360: Je le fais depuis l'ordinateur de l'utilisateur, donc je n'ai pas accès au serveur. Je cherche un moyen de connecter automatiquement l'utilisateur dans un ensemble de sites Web prédéfinis (comme Facebook, Gmail, Twitter, etc.) à partir de leur propre ordinateur. – Blender

Répondre

1

oui est possible. Je suggère deux façons de résoudre votre problème. Les deux utilisent des requêtes HTTP. Vous devriez vérifier plus d'informations sur la requête HTTP.

1) la plus simple et recommandé un pour seulement connexion Requests: HTTP for Humans

2) scrapy python, mais scrapy est pour ramper ou en grattant l'écran. vérifier cet exemple:

exemple Connexion araignée

class LoginSpider(BaseSpider): 
name = 'example.com' 
start_urls = ['http://www.example.com/users/login.php'] 

def parse(self, response): 
    return [FormRequest.from_response(response, 
       formdata={'username': 'john', 'password': 'secret'}, 
       callback=self.after_login)] 

def after_login(self, response): 
    # check login succeed before going on 
    if "authentication failed" in response.body: 
     self.log("Login failed", level=log.ERROR) 
     return 

    # continue scraping with authenticated session... 

more info here

+0

Est-ce que cela serait enregistré auprès des webbrowsers de l'utilisateur? Je ne cherche pas vraiment à gratter, mais plutôt à connecter l'utilisateur en arrière-plan afin qu'ils n'aient pas besoin de se connecter lors du chargement de la page sur leur webbrowser. – Blender

0

Il y a une bibliothèque en python appelé urllib2 qui vous permettra de faire ce que vous avez besoin. Regardez dans la documentation de python ou ici:

http://www.voidspace.org.uk/python/articles/urllib2.shtml#openers-and-handlers

ou ceci:

http://www.doughellmann.com/PyMOTW/urllib2/

+0

Je sais comment m'authentifier via Python, mais est-il possible d'authentifier les * navigateurs * de l'utilisateur avec un script Python? J'essaie de me connecter sur certains sites sans interaction de l'utilisateur, donc quand l'utilisateur visite le site, ils sont automatiquement connectés. – Blender

Questions connexes