Como eu posso fazer isso? Eu estava tentando entrar em algum link especificado (com urllib), mas para fazer isso, preciso fazer o login.
Eu tenho esta fonte do 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" />
Isso é possível?
python
automation
httpclient
webautomation
Bruno 'Shady'
fonte
fonte
2to3
mas agora recebo umModuleNotFoundError
ao tentar importá-lo.ModuleNotFoundError
usando / convertendo Twill 1.8.0 e instalandolxml
erequests
compip install
. Mas agora recebo umSyntaxError
quando tento importar porque em algum lugarFalse = 0
...Deixe-me tentar simplificar, suponha que o URL do site seja www.example.com e você precise se inscrever preenchendo o nome de usuário e a senha, então vamos para a página de login dizer http://www.example.com/login .php agora e veja seu código-fonte e pesquise o URL de ação que estará em forma de tag como
<form name="loginform" method="post" action="userinfo.php">
agora pegue userinfo.php para criar um URL absoluto que será ' http://example.com/userinfo.php ', agora execute um script python simples
import requests url = 'http://example.com/userinfo.php' values = {'username': 'user', 'password': 'pass'} r = requests.post(url, data=values) print r.content
Espero que algum dia isso ajude alguém em algum lugar.
fonte
Normalmente, você precisará de cookies para fazer login em um site, o que significa cookielib, urllib e urllib2. Aqui está uma aula que escrevi quando estava jogando jogos da web do 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())
Você não precisará necessariamente dos manipuladores HTTPS ou Redirect, mas eles não prejudicam e tornam o abridor muito mais robusto. Você também pode não precisar de cookies, mas é difícil dizer apenas pelo formulário que você postou. Suspeito que sim, puramente a partir da entrada 'Lembre-se de mim' que foi comentada.
fonte
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
Para obter mais informações, visite: https://docs.python.org/2/library/urllib2.html
fonte
2
foi adicionado aosdocs.python.org
urls: docs.python.org/2/library/urllib2.htmlAutomação de página da Web? Definitivamente "webbot"
webbot
funciona até mesmo páginas da web que mudam dinamicamente id e nomes de classe e tem mais métodos e recursos do que selênio ou mecanizar.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 ^_^
Os documentos também são bastante diretos e simples de usar: https://webbot.readthedocs.io
fonte
autocomplete=off
.?Could not find a version that satisfies the requirement webbot (from versions: 0.0.1.win-amd64)
Os sites em geral podem verificar a autorização de muitas maneiras diferentes, mas aquele que você está direcionando parece torná-lo razoavelmente fácil para você.
Tudo que você precisa é inserir
POST
noauth/login
URL um blob codificado por formulário com os vários campos que você vê lá (esqueça os rótulosfor
, eles são uma decoração para visitantes humanos).handle=whatever&password-clear=pwd
e assim por diante, contanto que você saiba os valores para o identificador (também conhecido como e-mail) e senha, você deve estar bem.Presumivelmente, o POST irá redirecioná-lo para alguma página "você fez login com sucesso" com um
Set-Cookie
cabeçalho validando sua sessão (certifique-se de salvar esse cookie e enviá-lo de volta em uma interação posterior durante a sessão!)fonte
Para coisas HTTP, a escolha atual deve ser: Solicitações - HTTP para humanos
fonte