欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

批量保存云盘链接的deom

程序员文章站 2022-04-29 18:54:50
写在前面的声明: 作为一个正在自学爬虫的小白,用爬虫爬了八千本书的云盘链接,然后就想把这写链接的资源都转存到自己的云盘里,以防某一天资源失效。本来想在网上找个能够批量保存的软件,哪知道找到几个都不能用,用手动保存肯定是不现实的。随后想到才学的selenium能够模拟浏览器的操作,就像自己写段自动保存 ......

写在前面的声明:

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

from selenium import webdriver
import time


with open("book_url_pw.txt") as f:
    links = f.readlines() # 从文件中读取资源链接和密码
    browser = webdriver.chrome() # 实例一个浏览器对象
    for link in links: # 遍历
        url = link.split("----")[0] # 以----为分隔符,前半段为地址,后半段为密码
        pw = link.split("----")[1]
        browser.get(url) # 请求资源链接
        time.sleep(2)
        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("云盘账号") # 输入账号
            browser.find_element_by_name("password").send_keys("云盘密码") # 输入密码
            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)