天下有道 发表于 2023-4-12 16:48

百度网盘链接失效检测

本帖最后由 天下有道 于 2023-4-13 16:04 编辑

昨晚我一个朋友发了个游戏链接给我,一个excel文件,有上千个游戏,我随便点击了几个,发现都失效了,为了不做重复工作,
因此今天写了一个python脚本,我搜了一下论坛发现没有人写过这个玩意,如果有相同类似的,请管理员删除我这个帖子

主要功能:使用selenium自动化工具检测百度网盘链接是否失效
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库可以直接判断,但是我考虑到还有一些网盘链接需要提取码,才能进入分享页面查看是否有没有文件存在,我遇到过需要输入提取码,但是里面的文件是没有的情况

2513002960 发表于 2023-4-12 16:56

这个其实可以用requests做的,selenium太慢了

Pojawa 发表于 2023-4-12 19:33

天下有道 发表于 2023-4-12 16:58
有一些有提取码的,如果没有提取码,可以直接用requests库来,我原本是用的是requests库,但是考虑到要输 ...

一般来说需要提取码就说明分享是仍然有效的。分享里面没有文件是分享者的问题,一般分享者提前分享链接出来,但是后期删除了里面的文件,或者里面的文件陆陆续续被度娘以某种不可抗力给删掉了,删到最后就是空分享链接了。但是分享者还是可以往分享链接里添加文件的。

99929yf 发表于 2023-4-12 16:58

谢谢分享

天下有道 发表于 2023-4-12 16:58

2513002960 发表于 2023-4-12 16:56
这个其实可以用requests做的,selenium太慢了

有一些有提取码的,如果没有提取码,可以直接用requests库来,我原本是用的是requests库,但是考虑到要输入提取码,点击按钮这些就用这个自动化工具了

sgbyg 发表于 2023-4-12 17:03

本帖最后由 sgbyg 于 2023-4-12 17:05 编辑

requests比较快{:301_998:}

qiaosefennu 发表于 2023-4-12 17:21

棒,有的时候要测试链接一个一个点太笨了。{:301_986:}

t5656 发表于 2023-4-12 17:23

好,谢谢楼主分享

cyantea 发表于 2023-4-12 17:47

感谢分享!

borohai 发表于 2023-4-12 17:48

感谢分享,虽然现在还不会用。

Huibq120 发表于 2023-4-12 17:54

太棒了,正好需要,感谢楼主分享{:1_893:}
页: [1] 2 3 4 5
查看完整版本: 百度网盘链接失效检测