本實例的實現邏輯是,應用selenium UI自動化登錄百度盤,讀取存儲百度分享地址和提取碼的txt文檔,打開百度盤分享地址,填入提取碼,然后保存到指定的目錄中
全部代碼如下:
# -*-coding:utf8-*- # encoding:utf-8 import time from selenium import webdriver browser = webdriver.Chrome() def loginphont(): browser.get("https://pan.baidu.com/")#打開鏈接 browser.maximize_window() browser.find_element_by_id("TANGRAM__PSP_4__footerULoginBtn").click() browser.find_element_by_id("TANGRAM__PSP_4__userName").send_keys("百度盤賬號") browser.find_element_by_id("TANGRAM__PSP_4__password").send_keys("百度盤密碼") browser.find_element_by_id("TANGRAM__PSP_4__submit").click() time.sleep(3) browser.find_element_by_id("TANGRAM__23__button_send_mobile").click()#發送驗證碼 time.sleep(20) loginphont() def keep(): for line in open('C:\\Users\\Beckham\\Desktop\\python\\1.txt'):#循環讀取百度地址和提取碼 address = line[0:47]#分離出百度盤地址 code = line[47:51]#分割出提取碼 browser.get(address)#打開鏈接 if u"分享的文件已經被刪除了" in browser.page_source:#如果文件被刪除,跳過本次循環,重新一輪循環開始 continue else: browser.find_element_by_id("ksrmwk1v").send_keys(code)#輸入提取碼 time.sleep(2) browser.find_element_by_xpath("//span[contains(text(),'提取文件')]").click() time.sleep(2) browser.find_element_by_xpath("//span[contains(text(),'保存到網盤')]").click() time.sleep(2) browser.find_element_by_xpath("//span[contains(text(),'taotu8')]").click() time.sleep(2) browser.find_element_by_xpath("//span[contains(text(),'確定')]").click() time.sleep(5) keep() def over(): print("game over") over()
百度盤資源的鏈接和提取碼的爬取來源請參考這一實例:https://www.cnblogs.com/becks/p/11335493.html
爬取后生成的txt文檔如下圖
每一條數據的后4位為提取碼,其余前面的內容為百度分享鏈接,所以有了下面的步驟,分離出分享地址和提取碼
for line in open('C:\\Users\\Beckham\\Desktop\\python\\1.txt'):#循環讀取百度地址和提取碼 address = line[0:47]#分離出百度盤地址 code = line[47:51]#分割出提取碼 browser.get(address)#打開鏈接
過程,步驟都相對簡單,就不用每一步都講解拉