短信验证登录淘宝web页面(selenium+Chromedriver)

自动化模拟登录(chromedriver存在python环境里)

第一步进行导包

import time
from selenium.webdriver import ChromeOptions
from selenium.webdriver import ActionChains
from selenium import webdriver
from selenium.webdriver.common.by import By

第二步定位获取页面的web源代码

获取某一页的html(想获取那一页就放在跳转之后的代码下面

win = c.window_handles
time.sleep(2)
c.switch_to.window(win[0])
print(c.page_source)

第三步构造是以chrome浏览器登录而不是以selenium的自动化登录并进入登录页面(防止滑动验证的出现)

登录模块

def login():
    # 模拟人为在浏览器登录,防止淘宝识别是selenium访问
    option = ChromeOptions()
     # 设置当前爬虫行为不是selenium自动框架
    option.add_argument('--disable-blink-features=AutomationControlled')  
   # options=option是应用防识别selenium
    c = webdriver.Chrome(executable_path="chromedriver", options=option)  
    c.get("https://www.taobao.com")
    c.find_element(By.XPATH, '//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()
    loginButtom(c)

第四步登录淘宝

登录模块

def loginButtom(c):
    username = '账号'
    ps = '密码'
    c.find_element(By.XPATH, '//*[@id="fm-login-id"]').send_keys(username)
    c.find_element(By.XPATH, '//*[@id="fm-login-password"]').send_keys(ps)
    c.find_element(By.XPATH, '//*[@id="login-form"]/div[4]/button').click()
    win = c.window_handles
    time.sleep(1)
    c.switch_to.window(win[0])
    if c.find_element(By.XPATH, '//*[@id="J_SiteNavLogin"]/div[1]/div/a').text == '你的账号名':
        uesrMessage(c)
    else:
        messageCheck(c)

第五步点击以短信验证登录

def messageCheck(c):
    iframe = c.find_element(By.XPATH, '//*[@id="content"]/div/div[1]/iframe')
    c.switch_to.frame(iframe)
    c.find_element(By.XPATH, '//*[@id="otherValidator"]').click()
    c.find_element(By.XPATH, '//*[@id="content"]/div/ol/li[1]/a').click()
    c.find_element(By.XPATH, '//*[@id="J_GetCode"]').click()
    number = input("请输入短信验证码:")
    c.find_element(By.XPATH, '//*[@id="J_Phone_Checkcode"]').send_keys(number)
    c.find_element(By.XPATH, '//*[@id="submitBtn"]').click()
    uesrMessage(c)

第五步点击运行代码

if __name__ == '__main__':
    login()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都不懂的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值