python批量实现百度网盘链接有效性检测

(一)初始数据样式

将百度网盘连接存放到 采用逗号间隔的UTF-8类型csv 文件中,数据存放格式为资源名 | 链接 | 密码,如下图所示:

逗号间隔的UTF-8类型csv 文件可以采用Excel转换而得,选择另存为操作即可:

(二)检测

2.1 原理与思路

如链接失效,会出现如下界面:

通过控制台查看返回的代码:


如果链接无效会有标签 class = share-error-left , div_id = share_nofound_des。故可以通过 urllib 库和 bs4.BeautifulSoup 请求并解析HTML,从而判断该标签是否存在。

2.2 设计

通过读取 csv 文件,依次将资源链接传入处理函数,依次判断并保存到新的 resultLink.csv中,作为输出结果。

2.3 代码 Demo

2.3.1 判断与解析代码

# -*- coding: utf-8 -*-
"""
comment: 百度网盘爬虫分析@author: GanAH  2020/5/12.
@version 1.0.
@contact: https://www.ganahe.top/
"""
import csv
import os
import urllib.request
import timefrom bs4 import BeautifulSoupclass BaiduNetdisk(object):def __init__(self):passdef disabledLink(self, link):"""链接有效性判断:param link: baiduNetdisk download Link:return: 0-False / html-True"""try:print("url", link)headers = {'User-Agent': 'Mozilla/4.0(compatible;MSIE 5.5;Windows NT)'}req = urllib.request.Request(url=link, headers=headers, method='POST')response = urllib.request.urlopen(req, None, 8)  # 在这里应该加入代理html = response.read()return {"code": 1, "status": html}except Exception as e:return {"code": 0, "status": e.__str__()}def anylies(self, link):resultDict = self.disabledLink(link)if resultDict["code"] == 0:print("异常错误!")print(resultDict.get("status"))else:try:# print(resultDict.get("status").decode('utf-8'))# ak = str(resultDict.get("status"),encoding = "utf8")# print(type(resultDict.get("status")))# for i in range(len(ak)):#     print(ak[i])soup = BeautifulSoup(resultDict.get("status"), 'html.parser')  # 文档对象# 类名为xxx而且文本内容为hahaha的divcount = 0# 查找是否有share-error标签,有则无效print("查找是否有share-error标签,有则无效")for k in soup.find_all('div', class_='share-error-left'):  # ,string='更多'print(k)count += 1if count == 0:print("链接有效")return Trueelse:print("链接无效")return Falseexcept Exception as e:print("异常错误-302:", e.__str__())

2.3.2 逻辑处理代码

if __name__ == "__main__":try:print("【===百度网盘链接有效性自动判别程序===】\n")print(" * 联系方式\n   1.https://www.ganahe.top/ \n   2.合作微信公众号:星辰换日\n")# 读取CSV文档filePath = input(" 请输入文件路径(示例:E:\\百度\\Link.csv):")sourceList = []with open(filePath, "r", encoding="utf8") as F:for line in F:# print(line)sourceList.append(line.split(","))with open(os.path.dirname(filePath) + "resultLink.csv", "w",newline= "", encoding="utf8") as S:writer = csv.writer(S)head = sourceList[0]head.append("有效性")print(head)writer.writerow(head)for i in range(1, len(sourceList)):line = sourceList[i]link = line[1]print("\n ------- 第"+str(i)+"个链接情况:",sourceList[i])just = BaiduNetdisk().anylies(link)if just is True:line.append("有效")else:line.append("链接无效")writer.writerow(line)print("\n-- 结束,所有链接均已分析完成,请打开resultLink.csv查看")time.sleep(600)except Exception as e:print("异常错误-301:", e.__str__())

(三) 测试结果

3.1 使用方式

如果 csv 文件与检测代码文件(baiduNetdisk.py,需要python编译环境)或程序(baiduNetdisk.exe,可以在window平台直接执行)在同一文件夹目录下


可以直接输入文件名[.后缀文件类型]即可。

GIF 展示如下:

如果不在同一文件夹目录下需要输入绝对路径:

3.2 输出结果



由于大多链接已失效,为了验证是否可以检测出有效链接,特定在末尾加上有效的链接进行测试:

可以发现,有效性得到检验。

(四)获取程序或源代码方式

4.1 源文链接

4.2 Github(请到上边源文章查看)

4.3 网盘(请到源文章查看)

4.4 最新版本:带GUI界面

python批量实现百度网盘链接有效性检测相关推荐

  1. Python3/Python2百度网盘链接地址

    Python3/Python2百度网盘链接地址 Python官网登录不上?Python下载太慢? 我已经把Python的安装包下载好并上传百度网盘,链接:https://pan.baidu.com/s ...

  2. java的jdk安装教程附百度网盘链接环境配置遇到的各种问题版本选择

    首先关于JDK版本的选择–附百度网盘链接 现在互联网行业各家公司大部分使用的是jdk8.0(也被叫做jdk1.8,有兴趣的话可以去百度以下jdk演变历史)虽然现在jdk更新到11版本了,但是不建议使用 ...

  3. 如何安装配置JDK(保姆级完美解决教程+附百度网盘链接)

    JDK种类繁多,在这里我以JDK14为例,为什么以JDK14为例呢?当然是为了破解白嫖idea2020旗舰版.^_^^_^(如果大家感兴趣,我后续会一个教程)     首先去甲骨文官方网站下载JDK1 ...

  4. 百度网盘链接前缀怎么加?

    百度网盘是一款很棒的云存储软件,不少小伙伴都在使用,但是在使用过程中也会发生一些问题.就比如很多网盘的链接如果不加前缀就无法打开,那百度网盘链接前缀要怎么加? 纯净之家-win7纯净版系统_win7 ...

  5. 重磅----股票风险指标计算,附程序,百度网盘链接

    今天我们放假,回贵阳,准备实习,我也可以专心的去研究自己感兴趣的方向,我们计算股票指标包括beta,alpha,最大回撤,在险价值等,指标很多,我就不仔细介绍了,今天挺累的,我们直接看效果,弄成了图形 ...

  6. eNSP安装包 百度网盘链接开篇·前言

    eNSP安装包 百度网盘链接 链接:https://pan.baidu.com/s/1_3JmJ-FufPmeHKGsMVXaLA?pwd=d5i3 提取码:d5i3 开篇·前言 本篇是针对于初学者, ...

  7. coppeliasim/vrep官网软件安装包(免费百度网盘链接)

    2021年10月23日更新说明:增加了官网链接 增加了CoopeliaSim Edu V4.2.0的windows.ubuntu.macOS各系统的软件包@meng 2022年4月21日更新说明:增加 ...

  8. opencv4.4百度网盘链接

    opencv4.4百度网盘链接 链接:https://pan.baidu.com/s/1LWE0IvfoBR7_fxgWdTvm9A 提取码:d83j

  9. javascript俄罗斯方块 面向对象编程(jQuery)(附带百度网盘链接)

    这个俄罗斯方块游戏是通过javascript面向对象编程的方法编写,代码结构分为游戏类(Game.js),方块类(block.js),地图类(Map.js),方块形状对象类(blockjson.js) ...

  10. Android Studio 1.0 正式版下载(另附百度网盘链接)

    众所周知,想要访问Android官网还是不容易的,这里我把那个页面复制过来了,里面带有需要的链接.其实只要把该链接离线到百度网盘即可(或者使用我已的百度网盘链接),或者用迅雷来下载,速度还是挺快的. ...

最新文章

  1. 如何开始SLAM学习?
  2. R语言可视化分面图、多变量分组多水平t检验、可视化多变量分组多水平分面条形图(faceting bar plot)并添加显著性水平、在标签和绘图上边框之间添加15%的空格、添加抖动数据点
  3. 收集几个js实现的日期时间控件
  4. 刚刚,《The Scientist》预测了未来最热门的生命科学技术
  5. LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
  6. java ee4.8下载_在WildFly 8.2中修补焊接3 – Java EE 8的第一个实验RI
  7. 【剑指offer】面试题62:圆圈中最后剩下的数字(Java)
  8. 荣耀play一直显示无服务器,降价都无法补救?荣耀Play3:绝不是电子垃圾!
  9. Java开发十大常用网站
  10. mobilenet cpu 加速_(300223)半导体+芯片概念,净利润增长408%!加速上涨!
  11. mysql数据绑定listview_将数据库数据用代码绑定到Listview
  12. java怎样实现数据库 选择列属性的select查询??_除了不要 SELECT * ,使用数据库还应知道的11个技巧!...
  13. MySQL自定义函数(四十六)
  14. 所谓周末,就是在家好好做饭、好好睡觉、好好玩游戏
  15. 小米 pro 笔记本拆机-加固态
  16. C语言确定某年星期六,c语言 怎么算某年某月某日是星期几啊?
  17. 图解弗洛伊德算法(每一对顶点之间的最短路径问题)
  18. 固态硬盘的计算机需要进行磁盘碎片整理吗,浅析为什么固态硬盘不需要磁盘碎片整理...
  19. python分支语句_Python语言基础分支语句、循环语句.ppt
  20. 财务业务:会计凭证的审核

热门文章

  1. 开源免费跨平台且超级傻瓜的视频分割的软件VidCutter(附CSDN下载)
  2. 随机森林算法(Random Forest)原理分析及Python实现
  3. linux消息队列 性能,消息队列消息总大小的问题
  4. ora 01033 oracle initialization,ora-01033:oracle initialization or shutdown in progress 解决方法
  5. 毫米和像素怎么换算_像素和厘米怎么换算?
  6. win10卸载软件_WIN10系统如何关闭/卸载自带杀毒软件
  7. jmeter使用心得(一)
  8. 简易版的微信聊天存储方式
  9. 14 款(移动端)UI 框架
  10. 全网首发stm8s的硬件I2C读取bme280(bmp280)的C源程序