Closed
Description
学习崔老师本节内容并尝试后发现,现今淘宝对于selenium的反爬机制做的非常到位。目前对于淘宝登录过程中常出现的滑动验证码的研究,最简单的有更改window.navigator.webdriver的值为undefined ,即以开发者模式打开chrome,本人尝试后发现无效。另外,调用ActionChains模块去完成滑动操作经常失败,甚至之后本人人工操作仍经常失败。更多讨论见如下链接: https://www.zhihu.com/question/285659525?sort=created。 这里给出一个比较简易的登录方式,即选择微博登录绕开可能存在滑动验证码的情况,也期待各位大牛能给出解决滑动验证码的思路!
try:
chrome_options = webdriver.ChromeOptions()
#chrome_options.add_argument('--headless')
# 下一行代码是为了以开发者模式打开chrome
chrome_options.add_experimental_option('excludeSwitches',['enable-automation'])
browser = webdriver.Chrome(options=chrome_options)
browser.get("https://s.taobao.com/search?q=iPad")
button = browser.find_element_by_class_name('login-switch')
button.click()
button = browser.find_element_by_class_name('weibo-login')
button.click()
user_name = browser.find_element_by_name('username')
user_name.clear()
user_name.send_keys('*****') #输入微博名 需要事先绑定淘宝
time.sleep(1)
user_keys = browser.find_element_by_name('password')
user_keys.clear()
user_keys.send_keys('*****') #输入微博密码
time.sleep(1)
button = browser.find_element_by_class_name('W_btn_g')
button.click()
time.sleep(1)
cookies = browser.get_cookies()
ses=requests.Session() # 维持登录状态
c = requests.cookies.RequestsCookieJar()
for item in cookies:
c.set(item["name"],item["value"])
ses.cookies.update(c)
ses=requests.Session()
time.sleep(1)
print('登录成功')
except:
print("登录失败")
Metadata
Metadata
Assignees
Labels
No labels