Bagaimana saya bisa melakukannya? Saya mencoba memasukkan beberapa tautan yang ditentukan (dengan urllib), tetapi untuk melakukannya, saya harus masuk.
Saya memiliki sumber ini dari situs:
<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" />
Apakah ini mungkin?
python
automation
httpclient
webautomation
Bruno 'Shady'
sumber
sumber
2to3
tetapi sekarang saya mendapatkanModuleNotFoundError
ketika mencoba untuk mengimpornya.ModuleNotFoundError
dengan menggunakan / mengubah Twill 1.8.0 dan menginstallxml
danrequests
denganpip install
. Tapi sekarang saya mendapatkanSyntaxError
ketika saya mencoba untuk mengimpor karena di suatu tempatFalse = 0
....Biarkan saya mencoba membuatnya sederhana, misalkan URL situsnya adalah www.example.com dan Anda perlu mendaftar dengan mengisi nama pengguna dan kata sandi, jadi kita pergi ke halaman login katakan http://www.example.com/login .php sekarang dan lihat kode sumbernya dan cari URL tindakan itu akan dalam bentuk tag seperti
<form name="loginform" method="post" action="userinfo.php">
sekarang ambil userinfo.php untuk membuat URL absolut yang akan menjadi ' http://example.com/userinfo.php ', sekarang jalankan skrip python sederhana
import requests url = 'http://example.com/userinfo.php' values = {'username': 'user', 'password': 'pass'} r = requests.post(url, data=values) print r.content
Saya harap ini membantu seseorang suatu hari nanti.
sumber
Biasanya Anda memerlukan cookie untuk masuk ke situs, yang berarti cookielib, urllib, dan urllib2. Ini adalah kelas yang saya tulis kembali ketika saya bermain game 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())
Anda tidak membutuhkan HTTPS atau Redirect handler, tetapi tidak merugikan, dan itu membuat pembuka jauh lebih kuat. Anda juga mungkin tidak memerlukan cookie, tetapi sulit untuk membedakannya hanya dari formulir yang Anda posting. Saya menduga Anda mungkin, murni dari masukan 'Ingat saya' yang telah dikomentari.
sumber
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
Untuk informasi lebih lanjut kunjungi: https://docs.python.org/2/library/urllib2.html
sumber
2
telah ditambahkan didocs.python.org
url: docs.python.org/2/library/urllib2.htmlOtomatisasi halaman web? Pasti "webbot"
webbot
bahkan berfungsi halaman web yang secara dinamis mengubah id dan nama kelas dan memiliki lebih banyak metode dan fitur daripada selenium atau mekanik.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 ^_^
Dokumennya juga cukup sederhana dan mudah digunakan: https://webbot.readthedocs.io
sumber
autocomplete=off
.?Could not find a version that satisfies the requirement webbot (from versions: 0.0.1.win-amd64)
Situs web pada umumnya dapat memeriksa otorisasi dengan berbagai cara, tetapi cara yang Anda targetkan tampaknya cukup memudahkan Anda.
Yang Anda butuhkan adalah untuk
POST
keauth/login
URL gumpalan bentuk-dikodekan dengan berbagai bidang yang Anda lihat di sana (lupa labelfor
, mereka dekorasi sedang untuk pengunjung manusia).handle=whatever&password-clear=pwd
dan seterusnya, selama Anda tahu nilai untuk pegangan (email AKA) dan kata sandi Anda harus baik-baik saja.Agaknya POST akan mengarahkan Anda ke beberapa halaman "Anda telah berhasil login" dengan
Set-Cookie
header yang memvalidasi sesi Anda (pastikan untuk menyimpan cookie itu dan mengirimkannya kembali pada interaksi lebih lanjut sepanjang sesi!).sumber
Untuk hal-hal HTTP, pilihan saat ini adalah: Permintaan- HTTP untuk Manusia
sumber