• 批量保存云盘链接的demo


    写在前面的声明:

      作为一个正在自学爬虫的小白,用爬虫爬了八千本书的云盘链接,然后就想把这写链接的资源都转存到自己的云盘里,以防某一天资源失效。本来想在网上找个能够批量保存的软件,哪知道找到几个都不能用,用手动保存肯定是不现实的。随后想到才学的selenium能够模拟浏览器的操作,就像自己写段自动保存的代码。经过三四个小时的奋战,有了以下的结果。我知道自己这个东西写得很烂很烂,但这确实是我学习路上用已有的知识独立思考独立操作出的成果,毕竟它解决了我实际遇到的问题,这完全符合我当初自学编程的初衷,心里还是很高兴的。现在把代码贴出来,让各位大神老师见笑了,也是为了如果有哪位大神有类似的更好的工具,希望能够分享一下。

    from selenium import webdriver
    import time
    
    with open("books.txt") as f:
        links = f.readlines() # 从文件中读取资源链接和密码
        browser = webdriver.Chrome() # 实例一个浏览器对象
        expired = [] # 创建一个存储过期链接的列表
        for link in links: # 遍历
            url = link.split("----")[0] # 以----为分隔符,前半段为地址,后半段为密码
            pw = link.split("----")[1]
            browser.get(url) # 请求资源链接
            time.sleep(2)
            if browser.page_source.find("zvbpPbMk") != -1: # 判断链接是否有效
                browser.find_element_by_id("zvbpPbMk").send_keys(pw) # 输入密码
                browser.find_element_by_class_name("text").click() # 点击确定
                time.sleep(2)
                if browser.page_source.find("user-name") != -1:
                    print("正在保存  " + browser.find_element_by_xpath("//h2").text)
                    browser.find_element_by_class_name("zbyDdwb").click() # 点选文件
                    browser.find_element_by_xpath('//a[@class="g-button g-button-blue"]/span[@class="g-button-right"]/span[@class="text"]').click() # 点击保存到网盘按钮
                    time.sleep(3)
                    browser.find_element_by_xpath("//div[@class='dialog-footer g-clearfix']/a[2]").click() # 点击确定
                    time.sleep(2)
                    print("保存成功  " + browser.find_element_by_xpath("//h2").text)
                else:
                    print("正在保存  " + browser.find_element_by_xpath("//h2").text)
                    browser.find_element_by_xpath("//dd[@class='CDaavKb']/a[1]").click() # 点击登陆按钮
                    time.sleep(3)
                    browser.find_element_by_xpath("//div[@class='tang-pass-footerBar']/p[2]").click() # 点击账号密码登陆按钮
                    time.sleep(3)
                    browser.find_element_by_name("userName").send_keys("15580502400") # 输入账号
                    browser.find_element_by_name("password").send_keys("xvv19890224") # 输入密码
                    browser.find_element_by_id("TANGRAM__PSP_10__submit").click() # 点击确定
                    time.sleep(3)
                    browser.find_element_by_class_name("zbyDdwb").click() # 点选文件
                    browser.find_element_by_xpath('//a[@class="g-button g-button-blue"]/span[@class="g-button-right"]/span[@class="text"]').click() # 点击保存到网盘按钮
                    time.sleep(3)
                    browser.find_element_by_xpath("//div[@class='dialog-footer g-clearfix']/a[2]").click() # 点击确定
                    time.sleep(2)
                    print("保存成功  " + browser.find_element_by_xpath("//h2").text)
            else:
                # 把过期的链接添加到列表
                expired.append(url)
        # 打印过期的链接列表
        print(expired)
  • 相关阅读:
    emWin 界面切换注意事项
    emWin 工程之汉字显示
    emWin 使用 GUIBuilder 放置标题 TEXT 注意
    【转】系统调用和驱动程序中相应函数的参数对应关系
    主机 & 虚拟机 & 开发板 相互通信
    电脑通过网口连接开发板
    【转】ARM交叉编译工具链
    【转】vi 写完文件保存时才发现是 readonly
    【转】ubuntu 12.04下如何开启 NFS 服务 & 设置
    安装完打开 eclipse 提示 JVM 版本较低
  • 原文地址:https://www.cnblogs.com/shawone/p/10295381.html
Copyright © 2020-2023  润新知