首页 编程教程正文

Python Selenium 百度云分享链接资源 批量保存

piaodoo 编程教程 2020-02-22 22:13:07 1355 0 python教程

本文来源吾爱破解论坛

本帖最后由 helian147 于 2019-11-21 15:46 编辑

参考链接  https://blog.csdn.net/u010730731/article/details/83594103 (xls格式)
找了个docx的批量百度云链接,转存到自己的网盘。
修改的地方:
1、百度云修改过了:driver.find_element_by_id("mwxxPOD")
2、从docx读取
3、driver = webdriver.Chrome(path),path填入自己的chromedriver地址,注意是文件地址,不是目录地址。且与你安装的chrome版本匹配的webdriver,并添加到环境变量中。
4、登陆时目前有滑块验证,代码中没有,自己手动拉一下嗨学网,还没搞定。
chroemdriver下载:
https://chromedriver.storage.googleapis.com/index.html

[Python] 纯文本查看 复制代码

# -*- coding: UTF-8 -*-
from docx import Document #安装 pip install python-docx
import re
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)
    try:
        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)
    except NoSuchElementException:
        pass



# 将加密分享的文件保存到自己云盘的目录下
def extract(driver,srcurl,srcpwd):
    driver.get(srcurl)
    try:
        getpwd = driver.find_element_by_id("mwxxPOD")  #("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


def read_docx(path):
    fulltext=[]
    list1=[]
    listUrl=[]
    listpwd=[]
    #生成word对象,并指向word文件
    doc=Document(path)
    #读取对象的全部内容,不包括图片和表格
    paras=doc.paragraphs
    #将每行数据存入列表
    for p in paras:
        fulltext.append(p.text)
    
    for i, element in enumerate(fulltext):
        if element.find("https:")!=-1:
            list1.append(i)
    for j in range(len(list1)):
        k =list1[j]
        link = re.findall(r'.*(https.*)',fulltext[k].replace(u"\xa0",u"").replace(" ",""))
        listUrl.append(link[0])
        pwd = re.findall('[a-zA-Z0-9]{4}',fulltext[k+1])
        listpwd.append(pwd[0])
    #print(len(listUrl),len(listpwd))
    return listUrl,listpwd


# 调用执行
def doWork():
    # 存放链接的文件
    path=r'文件地址***.docx'
    listUrl,listpwd= read_docx(path)
    driver = webdriver.Chrome(executable_path='D:\Program10\python37\chromedriver\chromedriver')
    login(driver,"网盘帐户名***","密码***")
    for index in range(len(listUrl)):
        srcurl = listUrl[index]
        srcpwd = listpwd[index]
        extract(driver,srcurl,srcpwd)
    driver.quit()


if __name__ == '__main__':
    doWork()

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7833.html

搜索