#coding=utf-8
from selenium importwebdriverfrom selenium.common.exceptions importNoSuchElementExceptionfrom selenium.webdriver.common.keys importKeysfrom selenium.webdriver.support.ui importWebDriverWaitimporttime ,sys, requests, jsonclassBrowser(object):def __init__(self,url):
self.browser=webdriver.Chrome()
self.browser.maximize_window()
self.url=url
self.browser.get(self.url)defget_element_by_id(self,element_id):returnself.browser.find_element_by_id(element_id)defget_element_by_class(self,_class):returnself.browser.find_element_by_class_name(_class)defget_element_by_text(self,text):returnself.browser.find_element_by_link_text(text)defget_screenshot(self,file):returnself.browser.get_screenshot_as_file(file)defwaitfor(self,element_id):return WebDriverWait(self.browser,10).until(lambdab:b.find_element_by_id(element_id).is_displayed())defupload_code_check():
url= 'http://api.yundama.net:5678/api.php?method=upload'
printurl
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)printres.contentreturnres_jsondefget_code_check_results(url1):whileTrue:
res1=requests.get(url1)
res1=json.loads(res1.content)if res1['ret'] ==0:break
returnres1defget_image(img_url):
img=requests.get(img_url)
img_f= open('C://dd.jpg','w+b')
img_f.write(img.content)
img_f.close()returnimgdefmain():
url= 'https://www.amazon.cn/'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'
exceptException:pass
else: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('&','&')printimg_url
img=get_image(img_url)
res_json=upload_code_check()
url1= "http://api.yundama.net:5678/api.php?method=result&cid=" + str(res_json['cid'])printurl1
res1=get_code_check_results(url1)print res1['text']
yzm= res1['text']printyzmifyzm:
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= "http://api.yundama.net:5678/api.php?method=result&cid=" + str(res_json['cid'])printurl2
res2=get_code_check_results(url2)print res2['text']
yzm2= res2['text']printyzm2ifyzm2:
browser.get_element_by_id('auth-captcha-guess').send_keys(str(yzm2))
browser.get_element_by_id('cnep_1D_submit_button').click()exceptNoSuchElementException,e:print(e)if __name__ == "__main__":
main()