本帖最后由 天下有道 于 2023-4-13 16:04 编辑
昨晚我一个朋友发了个游戏链接给我,一个excel文件,有上千个游戏,我随便点击了几个,发现都失效了,为了不做重复工作,
因此今天写了一个python脚本,我搜了一下论坛发现没有人写过这个玩意,如果有相同类似的,请管理员删除我这个帖子
主要功能:使用selenium自动化工具检测百度网盘链接是否失效
[Python] 纯文本查看 复制代码 import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 该程序适用于检验多个网盘链接的有没有失效
# 设置Edge浏览器驱动程序路径
driver_path = 'D:\Download\edgedriver_win64\msedgedriver.exe'
# 启动Edge浏览器
driver = webdriver.Edge(executable_path=driver_path)
def checklink(linkList:dict):
for link,code in linkList.items():
try:
req=requests.get(link)
if '百度网盘-链接不存在' in req.text:
print(f'链接:{link},百度网盘文件不存在或百度链接已失效')
return False
except Exception as e:
print(f'链接:{link},百度网盘链接访问失败:{e}')
return False
# 在当前浏览器会话中加载网页
driver.get(link)
# start=time.time()
# 找到提取码输入框
passwd_input = driver.find_element(By.ID, 'accessCode')
# 输入提取码
passwd_input.send_keys(code)
# end=time.time()
# print(f'耗时:{(end-start)*1000} 毫秒')
# 找到提交按钮并点击
submit_button = driver.find_element(By.ID, 'submitBtn')
# 模拟点击按钮
submit_button.submit()
# 延时两秒等待网页加载完成
time.sleep(2)
# 获取输入提取码后返回的title来判断网盘里面是否存在文件
result=driver.title
if '百度网盘 请输入提取码' in result:
print(f'链接:{link},提取码错误')
return False
if '百度网盘-链接不存在' in result:
print(f'链接:{link},百度网盘文件不存在或百度链接已失效')
return False
else:
print(f'链接:{link},百度网盘文件有效')
return False
# 关闭浏览器
# driver.quit()
if __name__=='__main__':
checklink({})
PS:4.13 增加提取码错误的判断,有人说直接用requests库可以直接判断,但是我考虑到还有一些网盘链接需要提取码,才能进入分享页面查看是否有没有文件存在,我遇到过需要输入提取码,但是里面的文件是没有的情况 |