python实现简单的百度云自动下载
最近女同让我帮助从百度云下载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
以上功能十分简单,能够节省很多时间。如果频繁下载,会遇到输入验证码的时候,我选择等待,还有其他方法(可以使用代理等)