Python Selenium 百度云分享链接资源保存到自己的百度云(批量)

1 篇文章 0 订阅
1 篇文章 0 订阅

应用场景:以某种方式(比如从某宝买)得到一些资源的链接,是存放在一个Excel里边的。想要把所有链接指向的资源都下载下来。

解决方案:1.所有资源保存到自己的云盘目录下;2.统一下载。

那么问题来了,如果有成百上千条的链接,要手动去点击,那就很伤眼睛了不是?于是笔者想到写一个自动去保存的代码来实现。

就目前笔者的知识技能储备,可以想到Python Selenium自动化测试的一些方法。具体代码如下:

# -*- coding: UTF-8 -*-
import xlrd
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time

# 凡是出现sleep的,都是因为网络等原因加载过慢,需要等一等

# 登录云盘
def login(driver,username,password):
    orgin_url = 'https://pan.baidu.com/'
    driver.get(orgin_url)
    time.sleep(5)
    elem_static = driver.find_element_by_id("TANGRAM__PSP_4__footerULoginBtn")
    elem_static.click()
    time.sleep(0.5)
    elem_username = driver.find_element_by_id("TANGRAM__PSP_4__userName")
    elem_username.clear()
    elem_username.send_keys(username)
    elem_userpas = driver.find_element_by_id("TANGRAM__PSP_4__password")
    elem_userpas.clear()
    elem_userpas.send_keys(password)
    elem_submit = driver.find_element_by_id("TANGRAM__PSP_4__submit")
    elem_submit.click()
    time.sleep(5)
# 将加密分享的文件保存到自己云盘的目录下[AA]
def extract(driver,srcurl,srcpwd):
    driver.get(srcurl)
    try:
        getpwd = driver.find_element_by_id("esDEV5")
        getpwd.send_keys(srcpwd)
        getButton = driver.find_element_by_link_text("提取文件")
        getButton.click()
        time.sleep(10)
	# 目前有两种情况
	# 一:分享文件是一压缩包
	# 二:分享的是一路径
        try:
            # 全选(情况二)
            selectall = driver.find_element_by_class_name("zbyDdwb")
            selectall.click()
        except NoSuchElementException:
            file_name = "no_zbyDdwb.png"
            driver.save_screenshot(file_name)
            driver.get_screenshot_as_file(file_name)
            pass
        savetodisk = driver.find_element_by_link_text("保存到网盘")
        savetodisk.click()
        time.sleep(5)
        # AA 保存路径
        selectdir = driver.find_element_by_xpath("//span[@node-path='/AA']")
        selectdir.click()
        enter = driver.find_element_by_link_text("确定")
        enter.click()
        time.sleep(2)
    except NoSuchElementException:
        file_name = "no_such_element.png"
        driver.get_screenshot_as_file(file_name)
        pass
# 从Excel中读取分享链接和提取密码(默认第一列是链接、第二列是提取密码)		
def read_excel(path):
    workbook = xlrd.open_workbook(path)
    sheet0=workbook.sheet_by_index(0);
    listUrl=[]
    listpwd=[]
    rownum=sheet0.nrows
    for index in range(rownum):
        listUrl.append(sheet0.cell(index,0).value.encode('utf-8'))
        listpwd.append(sheet0.cell(index,1).value.encode('utf-8'))
    return listUrl,listpwd
# 调用执行
def doWork():
    # 存放链接的文件
    path=r'C:\filetmp\demo.xlsx'
    listUrl,listpwd= read_excel(path)
    driver = webdriver.Chrome()
    login(driver,"你的云盘账号","密码")
    for index in range(len(listUrl)):
        srcurl=listUrl[index]
        srcpwd=listpwd[index]
        extract(driver,srcurl,srcpwd)
    driver.quit()
if __name__ == '__main__':
    doWork()

如果有什么问题可以留言

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值