接上篇淘宝使用selenium扫码登录文中发现,淘宝大约在90秒左右会重新刷新二维码,这时需要点击界面上的“请点击刷新”按钮,重新获取新的二维码才能进行扫码。之前的二维码将会失效。
我们把获取二维码的功能单独提取出来:
def get_qrcode_img_link_address():
if driver.find_element_by_id("J_QRCodeImg"):
print 'get the QRCodeImgUrl.....'
print driver.find_element_by_id("J_QRCodeImg").find_element_by_tag_name("img").get_attribute("src")
use_chrome_open_url(
driver.find_element_by_id("J_QRCodeImg").find_element_by_tag_name("img").get_attribute("src"))
再重新设计login函数体:
def login():
driver.get("https://www.taobao.com")
driver.maximize_window()
if driver.find_element_by_link_text("亲,请登录"):
driver.find_element_by_link_text("亲,请登录").click();
time.sleep(1)
get_qrcode_img_link_address()
while True:
try:
if driver.find_element_by_link_text("密码登录"):
print "请扫码登录..."
time.sleep(1)
try:
if driver.find_element_by_link_text("请点击刷新"):
driver.find_element_by_link_text("请点击刷新").click()
time.sleep(1)
get_qrcode_img_link_address()
except NoSuchElementException:
time.sleep(1)
continue
except NoSuchElementException:
print "成功登录..."
print driver.current_url
break
time.sleep(1)
其他保持与上文不变,亲测通过。有问题请留言,会及时回答。
淘宝优惠劵超市