Verwenden Sie Selenium und die Codierungsplattform (Sie können das Verifizierungscodebild nicht selbst analysieren, daher müssen Sie eine Verbindung zur Codierungsplattform herstellen, um den Bildverifizierungscode zu analysieren), um sich automatisch bei der Amazon-Website anzumelden und die E-Mail zu ändern Adresse und Passwort an das Konto gebunden.
Logik: Simulieren Sie den Betrieb des Browsers, geben Sie die Daten in das Positionierungselement ein, laden Sie den Bildbestätigungscode basierend auf den Attributen des Seitenelements zur Analyse herunter, füllen Sie den Bestätigungscode automatisch aus und realisieren Sie automatisierte Vorgänge.
Um den Chrome-Browser zu verwenden, müssen Sie die entsprechende Version von Webdriver herunterladen.
#coding=utf-8from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import WebDriverWaitimport time ,sys, requests, jsonclass Browser(object):def __init__(self,url): self.browser = webdriver.Chrome() self.browser.maximize_window() self.url = url self.browser.get(self.url)def get_element_by_id(self,element_id): return self.browser.find_element_by_id(element_id)def get_element_by_class(self,_class):return self.browser.find_element_by_class_name(_class)def get_element_by_text(self,text):return self.browser.find_element_by_link_text(text)def get_screenshot(self,file):return self.browser.get_screenshot_as_file(file) def waitfor(self,element_id):return WebDriverWait(self.browser,10).until(lambda b:b.find_element_by_id(element_id).is_displayed())def upload_code_check(): url = ':5678/api.php?method=upload'print url data = {} data.update({'username':'xxxxx'}) data.update({'password':'xxxxx'}) data.update({'codetype':'5000'}) data.update({'appid':'1'}) data.update({'appkey':'22cc5376925e9387a23cf797cb9ba745'}) data.update({'timeout':'60'}) data.update({'version':'YAPI/WEB v1.0.0'}) data.update({'showimage':'1'}) files = {'file':('dd.jpg',open('C://dd.jpg','rb'),'image/jpeg')} res = requests.post(url,data=data,files=files) res_json = json.loads(res.content)print res.contentreturn res_json def get_code_check_results(url1):while True: res1 = requests.get(url1) res1 = json.loads(res1.content)if res1['ret'] == 0:breakreturn res1def get_image(img_url): img = requests.get(img_url) img_f = open('C://dd.jpg','w+b') img_f.write(img.content) img_f.close()return img def main(): url = ''count = 'xxxxxxx'pwd = 'xxxxxxxx'pwd_new = 'xxxxxxx'#email_new = 'xxxxx@qq.com'email_new = 'xxxxxxxx@qq.com'browser = Browser(url)if browser.waitfor('nav-link-yourAccount'): browser.get_element_by_id('nav-link-yourAccount').click()else:print 'connect timeout'sys.exit(1)if browser.waitfor('ap_email'): browser.get_element_by_id('ap_email').send_keys(count) browser.get_element_by_id('ap_password').send_keys(pwd) browser.get_element_by_id('signInSubmit').click()try: error = browser.get_element_by_id('auth-error-message-box')print 'login error'except Exception:passelse:print 'connect timeout'sys.exit(1)if browser.waitfor('nav-link-yourAccount'): browser.get_element_by_id('nav-link-yourAccount').click()else:print 'connect timeout'sys.exit(1)try: text = browser.get_element_by_text(u'登录和安全设置') text.click() email = browser.get_element_by_id('auth-cnep-edit-email-button') email.click()if browser.waitfor('ap_email_new'): browser.get_element_by_id('ap_email_new').send_keys(email_new) browser.get_element_by_id('ap_email_new_check').send_keys(email_new) browser.get_element_by_id('ap_password').send_keys(pwd) yanzhenma = browser.get_element_by_id('auth-captcha-image') img_url = yanzhenma.get_attribute('src') img_url = img_url.replace('&','&')print img_url img = get_image(img_url) res_json = upload_code_check() url1 = ":5678/api.php?method=result&cid=" + str(res_json['cid'])print url1 res1 = get_code_check_results(url1)print res1['text'] yzm = res1['text']print yzmif yzm: browser.get_element_by_id('auth-captcha-guess').send_keys(str(yzm)) browser.get_element_by_id('cnep_1B_submit_button').click()if browser.waitfor('auth-success-message-box'): browser.get_element_by_id('auth-cnep-edit-password-button').click()print 'success modify email'if browser.waitfor('ap_password_new_check'): browser.get_element_by_id('ap_password').send_keys(pwd) browser.get_element_by_id('ap_password_new').send_keys(pwd_new) browser.get_element_by_id('ap_password_new_check').send_keys(pwd_new) auth_img_url = browser.get_element_by_id('auth-captcha-image') img_url2 = auth_img_url.get_attribute('src').replace('&','&') img2 = get_image(img_url2) res_json = upload_code_check() url2 = ":5678/api.php?method=result&cid=" + str(res_json['cid'])print url2 res2 = get_code_check_results(url2)print res2['text'] yzm2 = res2['text']print yzm2if yzm2: browser.get_element_by_id('auth-captcha-guess').send_keys(str(yzm2)) browser.get_element_by_id('cnep_1D_submit_button').click() except NoSuchElementException,e:print(e) if __name__ == "__main__": main()
Das obige ist der detaillierte Inhalt vonSeleniums Beispielcode für die automatische Anmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!