Jak mogę to zrobić? Próbowałem wprowadzić jakiś określony link (z urllib), ale aby to zrobić, muszę się zalogować.
Mam to źródło ze strony:
<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" />
czy to możliwe?
python
automation
httpclient
webautomation
Bruno „Shady”
źródło
źródło
2to3
ale teraz otrzymujęModuleNotFoundError
, próbując go zaimportować.ModuleNotFoundError
, używając / konwertując Twill 1.8.0 i instalująclxml
irequests
zpip install
. Ale teraz dostaję,SyntaxError
kiedy próbuję importować, ponieważ gdzieśFalse = 0
....Spróbuję to uprościć, przypuśćmy, że adres URL witryny to www.example.com i musisz się zarejestrować, wypełniając nazwę użytkownika i hasło, więc przechodzimy do strony logowania, na przykład http://www.example.com/login .php i przejrzyj jego kod źródłowy i wyszukaj adres URL akcji, który będzie w formie tagu podobnego do
<form name="loginform" method="post" action="userinfo.php">
teraz weź userinfo.php, aby utworzyć bezwzględny adres URL, który będzie „ http://example.com/userinfo.php ”, teraz uruchom prosty skrypt Pythona
import requests url = 'http://example.com/userinfo.php' values = {'username': 'user', 'password': 'pass'} r = requests.post(url, data=values) print r.content
Mam nadzieję, że to kiedyś komuś pomoże.
źródło
Zazwyczaj do zalogowania się na stronie potrzebne są pliki cookie, co oznacza cookielib, urllib i urllib2. Oto klasa, którą odpisałem, gdy grałem w gry internetowe na Facebooku:
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())
Niekoniecznie będziesz potrzebować obsługi HTTPS lub przekierowania, ale nie zaszkodzą, a to sprawia, że otwieracz jest znacznie bardziej niezawodny. Możesz również nie potrzebować plików cookie, ale trudno to stwierdzić na podstawie opublikowanego formularza. Podejrzewam, że możesz, wyłącznie na podstawie komentarza „Zapamiętaj mnie”.
źródło
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
Więcej informacji można znaleźć pod adresem : https://docs.python.org/2/library/urllib2.html
źródło
2
został dodany wdocs.python.org
adresach URL: docs.python.org/2/library/urllib2.htmlAutomatyzacja strony internetowej? Zdecydowanie „webbot”
webbot
działa nawet na stronach internetowych, które mają dynamicznie zmieniające się identyfikatory i nazwy klas oraz mają więcej metod i funkcji niż selen czy mechanize.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 ^_^
Dokumentacja jest również dość prosta i prosta w użyciu: https://webbot.readthedocs.io
źródło
autocomplete=off
.?Could not find a version that satisfies the requirement webbot (from versions: 0.0.1.win-amd64)
Generalnie strony internetowe mogą sprawdzać autoryzację na wiele różnych sposobów, ale ta, na którą kierujesz swoje reklamy, wydaje się dość łatwa.
Wszystko czego potrzebujesz to
POST
doauth/login
URL formą kodowane blob z różnych dziedzin widać tam (zapomnieć etykietyfor
, są ozdoby dla ludzi odwiedzających).handle=whatever&password-clear=pwd
i tak dalej, o ile znasz wartości uchwytu (e-mail AKA) i hasło, wszystko powinno być w porządku.Przypuszczalnie POST przekieruje Cię na stronę "pomyślnie zalogowałeś się" z
Set-Cookie
nagłówkiem potwierdzającym Twoją sesję (pamiętaj, aby zapisać ten plik cookie i wysłać go z powrotem podczas dalszej interakcji podczas sesji!).źródło
W przypadku HTTP aktualny wybór powinien być następujący: Żądania- HTTP dla ludzi
źródło