1. 程式人生 > >python實現簡單的百度雲自動下載

python實現簡單的百度雲自動下載

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實現簡單的百度雲自動下載