批量保存云盘链接的deom
程序员文章站
2022-07-04 17:43:48
写在前面的声明: 作为一个正在自学爬虫的小白,用爬虫爬了八千本书的云盘链接,然后就想把这写链接的资源都转存到自己的云盘里,以防某一天资源失效。本来想在网上找个能够批量保存的软件,哪知道找到几个都不能用,用手动保存肯定是不现实的。随后想到才学的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)