python實現簡單的百度雲自動下載
阿新 • • 發佈:2018-09-20
pan odin ret lines spa lee 自動 資源 class
最近女同讓我幫助從百度雲下載200個文件,給了我連接和提取碼,這種重復的工作不適合人做寫了一個簡單的爬蟲
#coding=utf-8 ‘‘‘ 自動填寫提取碼下載百度雲資源 方法: for 讀取文件中的連接和提取碼 1 打開網頁(link) 2 輸入提取碼 3 下載 ‘‘‘ from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() f = open("baidulink.txt",encoding="utf-8") l= open("log.txt","w") lines = f.readlines() for line in lines: if line != ‘\n‘: if len(line) > 10: print (line) list = line.split(" ") print (list) link = list[2] link = link.split(":")[1] link= link.strip() print (link) num = list[3].split(":")[1] num = num.strip() print (num) driver.get(link) elem = driver.find_element_by_id("eoX9ze") elem.send_keys(num) elem.send_keys(Keys.RETURN) time.sleep(1) sreach_window = driver.current_window_handle driver.find_element_by_xpath("//*[@id=‘layoutMain‘]/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click() ‘‘‘ 寫日誌,便於檢查下載丟失的文件 ‘‘‘ l.writelines(line) l.write(‘\n‘) line = f.readline() time.sleep(3) f.close()
我把連接存在 baidulink.txt中,文件是逐行讀取,提取出連接和提取碼
使用selenium模擬瀏覽器,必須保證你的瀏覽器是Google Chrome,並裝了chromedriver,相關內容自行百度
註意一下幾點:
1 elem = driver.find_element_by_id("eoX9ze")
這個id好是會變的,如果變了按F12查看
2 sreach_window = driver.current_window_handle
頁面跳轉後,需要把driver定位到當前頁面
3 driver.find_element_by_xpath("//*[@id=‘layoutMain‘]/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click()
這裏使用xpath(還有id name selector等,選擇適合的),可以使用選擇那段代碼然後復制xpath
以上功能十分簡單,能夠節省很多時間。如果頻繁下載,會遇到輸入驗證碼的時候,我選擇等待,還有其他方法(可以使用代理等)
python實現簡單的百度雲自動下載