Comment puis-je le faire? J'essayais d'entrer un lien spécifié (avec urllib), mais pour le faire, je dois me connecter.
J'ai cette source sur le site:
<form id="login-form" action="auth/login" method="post">
<div>
<!--label for="rememberme">Remember me</label><input type="checkbox" class="remember" checked="checked" name="remember me" /-->
<label for="email" id="email-label" class="no-js">Email</label>
<input id="email-email" type="text" name="handle" value="" autocomplete="off" />
<label for="combination" id="combo-label" class="no-js">Combination</label>
<input id="password-clear" type="text" value="Combination" autocomplete="off" />
<input id="password-password" type="password" name="password" value="" autocomplete="off" />
<input id="sumbitLogin" class="signin" type="submit" value="Sign In" />
Est-ce possible?
python
automation
httpclient
webautomation
Bruno 'Shady'
la source
la source
2to3
mais maintenant j'obtiens unModuleNotFoundError
en essayant de l'importer.ModuleNotFoundError
en utilisant / convertissant Twill 1.8.0 et en installantlxml
etrequests
avecpip install
. Mais maintenant j'obtiens unSyntaxError
quand j'essaye d'importer parce que quelque partFalse = 0
....Laissez-moi essayer de faire simple, supposons que l'URL du site est www.example.com et que vous devez vous inscrire en remplissant le nom d'utilisateur et le mot de passe, nous allons donc à la page de connexion, dites http://www.example.com/login .php maintenant et affichez son code source et recherchez l'URL d'action, il sera sous forme de balise quelque chose comme
<form name="loginform" method="post" action="userinfo.php">
maintenant, prenez userinfo.php pour créer une URL absolue qui sera ' http://example.com/userinfo.php ', exécutez maintenant un simple script python
import requests url = 'http://example.com/userinfo.php' values = {'username': 'user', 'password': 'pass'} r = requests.post(url, data=values) print r.content
J'espère que cela aidera quelqu'un quelque part un jour.
la source
En règle générale, vous aurez besoin de cookies pour vous connecter à un site, ce qui signifie cookielib, urllib et urllib2. Voici un cours que j'ai écrit lorsque je jouais à des jeux Web Facebook:
import cookielib import urllib import urllib2 # set these to whatever your fb account is fb_username = "[email protected]" fb_password = "secretpassword" class WebGamePlayer(object): def __init__(self, login, password): """ Start up... """ self.login = login self.password = password self.cj = cookielib.CookieJar() self.opener = urllib2.build_opener( urllib2.HTTPRedirectHandler(), urllib2.HTTPHandler(debuglevel=0), urllib2.HTTPSHandler(debuglevel=0), urllib2.HTTPCookieProcessor(self.cj) ) self.opener.addheaders = [ ('User-agent', ('Mozilla/4.0 (compatible; MSIE 6.0; ' 'Windows NT 5.2; .NET CLR 1.1.4322)')) ] # need this twice - once to set cookies, once to log in... self.loginToFacebook() self.loginToFacebook() def loginToFacebook(self): """ Handle login. This should populate our cookie jar. """ login_data = urllib.urlencode({ 'email' : self.login, 'pass' : self.password, }) response = self.opener.open("https://login.facebook.com/login.php", login_data) return ''.join(response.readlines())
Vous n'aurez pas nécessairement besoin des gestionnaires HTTPS ou Redirect, mais ils ne font pas de mal, et cela rend l'ouvreur beaucoup plus robuste. Vous n'avez peut-être pas besoin de cookies, mais il est difficile de le dire uniquement à partir du formulaire que vous avez publié. Je soupçonne que vous pourriez, uniquement à partir de l'entrée «Souvenez-vous de moi» qui a été commentée.
la source
import cookielib import urllib import urllib2 url = 'http://www.someserver.com/auth/login' values = {'email-email' : '[email protected]', 'password-clear' : 'Combination', 'password-password' : 'mypassword' } data = urllib.urlencode(values) cookies = cookielib.CookieJar() opener = urllib2.build_opener( urllib2.HTTPRedirectHandler(), urllib2.HTTPHandler(debuglevel=0), urllib2.HTTPSHandler(debuglevel=0), urllib2.HTTPCookieProcessor(cookies)) response = opener.open(url, data) the_page = response.read() http_headers = response.info() # The login cookies should be contained in the cookies variable
Pour plus d'informations, visitez: https://docs.python.org/2/library/urllib2.html
la source
2
été ajouté dans lesdocs.python.org
urls: docs.python.org/2/library/urllib2.htmlAutomatisation de page Web? Certainement "webbot"
webbot
fonctionne même des pages Web qui ont des identifiants et des noms de classe qui changent dynamiquement et qui ont plus de méthodes et de fonctionnalités que le sélénium ou la mécanisation.from webbot import Browser web = Browser() web.go_to('google.com') web.click('Sign in') web.type('[email protected]' , into='Email') web.click('NEXT' , tag='span') web.type('mypassword' , into='Password' , id='passwordFieldId') # specific selection web.click('NEXT' , tag='span') # you are logged in ^_^
Les documents sont également assez simples et simples à utiliser: https://webbot.readthedocs.io
la source
autocomplete=off
.?Could not find a version that satisfies the requirement webbot (from versions: 0.0.1.win-amd64)
Les sites Web en général peuvent vérifier l'autorisation de différentes manières, mais celle que vous ciblez semble vous faciliter la tâche.
Tout ce dont vous avez besoin est d' attribuer
POST
à l'auth/login
URL un blob codé par formulaire avec les différents champs que vous y voyez (oubliez les étiquettesfor
, ce sont des décorations pour les visiteurs humains).handle=whatever&password-clear=pwd
et ainsi de suite, tant que vous connaissez les valeurs du handle (AKA email) et du mot de passe, tout devrait bien se passer.Vraisemblablement, POST vous redirigera vers une page "vous vous êtes connecté avec succès" avec un en-
Set-Cookie
tête validant votre session (assurez-vous de sauvegarder ce cookie et de le renvoyer lors d'une nouvelle interaction au cours de la session!).la source
Pour les choses HTTP, le choix actuel devrait être: Requests - HTTP for Humans
la source