接上篇淘寶使用selenium掃碼登錄文中發(fā)現(xiàn),淘寶大約在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"))
再重新設(shè)計login函數(shù)體:
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)
其他保持與上文不變,親測通過。有問題請留言,會及時回答。
淘寶優(yōu)惠劵超市