python亚马逊运营工具_python[自动化]selenium初探实现自动登录亚马逊进行操作

#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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值