写在前面的声明:

  作为一个正在自学爬虫的小白,用爬虫爬了八千本书的云盘链接,然后就想把这写链接的资源都转存到自己的云盘里,以防某一天资源失效。本来想在网上找个能够批量保存的软件,哪知道找到几个都不能用,用手动保存肯定是不现实的。随后想到才学的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("") # 输入账号
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)

批量保存云盘链接的demo的更多相关文章

  1. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】

    转载自:http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  2. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)(转)

    文章转自http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  3. .NET DLL 保护措施应用实例(百度云批量保存工具)

    最近做了个小工具,将保护措施思路全部应用到了此工具中. 点我下载   百度云批量保存工具是一款专门用于自动批量保存百度云分享的软件. 本软件特点:1:完全模拟人工操作:2:可以批量保存百度分享的文件( ...

  4. 使用Python玩转阿里云盘

    项目地址: https://github.com/foyoux/aligo 这个项目起源于我的一个简单需求, 我有25000个文件, 已经上传了9000个, 但是现在我把这些文件重新整理了, 最后我不 ...

  5. 使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步

    转载自:https://www.bilibili.com/read/cv16835328?spm_id_from=333.999.0.0 0x00 前言简述 描述:由于个人家里的NAS以及公司团队对私 ...

  6. 哭瞎!360云盘将关停,你的几十T照片和文件该怎么办

    IDO老徐刚得到了一个非常不开心的消息,360云盘将停止个人云盘服务...进行业务转型,在网盘存储.传播内容的合法性和安全性得到彻底解决之前不再考虑恢复,之后转型企业云服务. 而且之前共享的所有资料, ...

  7. 极客DIY:使用树莓派制作一套“NAS+私有云盘+下载机”

    原创作者:HackLiu 0×00 前言 ‍ ‍ 如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司做了这个事情 ...

  8. 18年10月份最新免费申请微软OneDrive5TB云盘超详细教程!(已亲测!)

    本人已于今天10月23日亲测,成功获取微软OneDrive5T云盘! 第一步:.打开申请链接学生版:https://signup.microsoft.com/signup?sku=student教师版 ...

  9. Nextcloud13私有云盘安装指南

    一.环境说明: ※操作系统版本CentOS 7.5 Minimal-1804 ※操作系统版本已经使用163 YUM源 ※ Nextcloud版本 13.05 ※ 数据库使用MariaDB,安装在同一台 ...

随机推荐

  1. ubuntu上安装ansible

    1 在最新的ubuntu系统上安装ansible : sudo ape-get install ansible 2 切换到root用户 生成ssh免密登陆 ssh-keygen -t rsa ssh- ...

  2. SpringBoot---Web开发---WebSocket

    [广播式] 1. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  3. enable assembly bind failure logging (Fusion) in .NET

    今天遇到新建wcf项目编译成64位版本在64位windows上无法运气的,问题 先百度了一下如何查看程序集加载日志: Add the following values to HKEY_LOCAL_MA ...

  4. vue2.0:(五)、路由vue-router

    好的,接下来,我们来写路由.用的是vue2.0的路由. 步骤一:配置main.js import Vue from 'vue'; import App from './App'; import rou ...

  5. gulp运行步骤

    一.运行→输入cmd→跳出命令窗口二.cd D: 敲回车进入D盘,cd www 进入项目路径 cd mygulp三.执行 cnpm install gulp --save-dev 命令 (初始化安装g ...

  6. xcode在代码中查找中文

    总是忘记xcode中查找中文,这次记下来,以后就不会忘记了,哈哈 请看下图: 切换到查找,点击find后面的text,选择Regular Expression,然后输入 1. 查找非ascii的字符 ...

  7. iOS-浅谈runtime运行时机制02-runtime简单使用

    http://blog.csdn.net/jiajiayouba/article/details/44201079 由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方 ...

  8. 【虚拟机-网络IP】如何开放 Azure 虚拟机 Ping 功能

    前言 文章<使用 PsPing & PaPing 进行 TCP 端口连通性测试>中提到,ICMP 协议的数据包无法通过 Azure 的防火墙和负载均衡器,所以不能直接使用 Ping ...

  9. HTML 中的特殊字符

    空格符         <小于号    < >大于号    > &和好      & ¥人民币  ¥ ©  版权   © ®  注册商标 ® ℃ 摄氏度  ° ...

  10. BandwagonHost 5个数据中心/机房Ping速度测试亲自体验

    我们选择Bandwagonhost服务器的原因之一在于有5个数据中心,而且与众多其他VPS不同之处在于可以自己后台切换机房和IP,这样我们 在遇到不满意的速度时候,可以自己切换其他机房更换,而且对于有 ...