需求分析

  1. 我有一些资源网站,但是每次我需要资源的时候需要打开他们的网页,搜索再筛选我需要的网盘资源,这样的操作非常麻烦
  2. 使用python模拟这些搜索操作,然后爬取我需要的百度网盘信息
  3. 用python的Gui编程开发一个简单的界面

实现

界面开发

  1. 搜索框
  2. 搜索按键
  3. 结果展示框
#coding=utf-8from tkinter imprt *class movieFrame:def __init__(self, init_window_name):self.init_window_name = init_window_namedef setInitWindow(self):self.init_window_name.title("百度网盘_SEARCH by YoooKnight")self.init_window_name.getmetry('500x400')# 搜索框self.init_search_text = Text(self.init_window_name, width=30, height=2)self.init_search_text.grid(row=0, column=1, padx=20, pady=10)# 结果集self.init_result_data = Text(self.init_window_name, width=50, height=20)self.init_result_data.config(state=DISABLED)self.init_result_data.grid(row=1, column=1, columnspan=2, padx=20, pady=10, sticky=W)#滚动条scroll = Scrollbar(command=self.init_result_data.yview)self.init_result_data.config(yscrollcommand=scroll.set)scroll.grid(row=1,column=3, sticky=S + W + E + N)# 查询按钮self.searchButton = Button(self.init_window_name, text="查询", bg='lightblue', command=self.searchMovie)self.searchButton.grid(row=0, column=2)def searchMovie:pass

BDY资源爬虫开发

  1. 目前只做了一个资源网站的爬取,后期有时间会进行扩展
  2. 该网站做了爬虫封锁间隔时间,也就是如果连续爬取该页面会直接不给你访问,可能会等待一段时间才能继续访问,后期有时间会增加代理ip访问
from bs4 import BeautifulSoup
from urllib.request import quote
import urllib.request
import string
import reclass Spider:search = ''# 需要访问的网址indexUrl = 'http://****/'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}def __init__(self, search):self.search = searchdef getlinkList(self):# 搜索文件searchUrl = self.indexUrl + '?s=' + self.searchsearchUrl = quote(searchUrl, safe=string.printable)req = urllib.request.Request(searchUrl, headers=self.headers)res = urllib.request.urlopen(req)html = res.read().decode('utf8')# 读取详情页面soup = BeautifulSoup(html, 'html.parser')try:# 这里只找了第一个链接,所有相当于是查找到相似度最高的一个结果detailUrl = soup.find('div', class_='mainleft').find('div', class_='thumbnail').find('a').get('href')# 获取详情页面detailReq = urllib.request.Request(detailUrl, headers=self.headers)detailRes = urllib.request.urlopen(detailReq)detailHtml = detailRes.read().decode('utf-8')dic = []# 查找所有的a标签soup = BeautifulSoup(detailHtml, 'html.parser')aList = soup.findAll("a")linkUrlList = []for aTag in aList:tempHref = aTag.get("href")if tempHref and tempHref.find("pan.baidu.com")>=0:linkUrlList.append(tempHref)# 获取所有的提取码codeList = re.findall('((提取码|密码)[\:\:][ ]?.{4})', str(detailHtml))# 拼接我需要的数据index=0for link in linkUrlList:if (index<len(codeList)):tempDic = {"link": link,"code": codeList[index][0][-4:]}dic.append(tempDic)index += 1return dicexcept Exception as e:print(e)return []

整合界面和爬虫

  1. 点击搜索之后调用爬虫接口
  2. 获取网盘数据并且展示
from sourceSpider.pinghaoche import spider as pingSpiderclass movieFrame:def searchMovie(self):# 获取搜索框里面的内容search = self.init_search_Text.get(1.0, END)spiderObject = pingSpider.Spider(search)ret = spiderObject.getlinkList()index = 1self.init_result_data.config(state=NORMAL)self.init_result_data.delete(1.0, END)if ret:for temp in ret:tempIndex = format(index, '0.1f')self.init_result_data.insert(tempIndex, "链接地址:" + temp['link'] + "\n")index += 1tempIndex = format(index, '0.1f')self.init_result_data.insert(tempIndex, "提取码:" + temp['code'] + "\n\n")index += 2else:self.init_result_data.insert(1.0, "非常抱歉,没有找到你要的影片")self.init_result_data.config(state=DISABLED)

打包

  1. 安装pyInstaller
pip install pyInstaller
  1. 打包成exe文件
# F: 生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
# w: 不显示命令行窗口
pyInstaller -Fw xx.py

成果展示

总结

  1. 界面开发使用的是tkinter,后期看一下qt开发
  2. 在爬虫的过程中发现详情页面规则并不是确定的,发现每次爬取可能会出错,于是直接爬取所有的a标签并且对比百度网盘的地址,提取码直接用正则全文搜索出来,肯定还是有误差的,可能会出错,先把功能实现,后期修改就行

Tips:有兴趣的朋友可以+qq1592388194,这只是一个小工具,有很多问题,不介意的可以找我,大家一起学习进步,哈哈哈。

ps:
该文章已经同步发到简书,链接地址:https://www.jianshu.com/p/9a53322a6d0c

百度网盘_SEARCH相关推荐

  1. linux下备份mysql上传到网盘_Linux命令行上传文件到百度网盘

    最近在学习 MySQL 的 bin-log 时候考虑到数据备份的问题,突然想到如果能将数据通过 Linux 命令行方式备份到百度网盘,那是一件多么牛逼的事情.百度网盘有免费的 2TB 存储空间,而且有 ...

  2. face-swap.zip百度网盘下载

    换脸的那个deepfake项目,其数据集地址为 https://anonfile.com/p7w3m0d5be/face-swap.zip , 直白的说,不知道为什么要把数据集下载到这个网站, 我自己 ...

  3. reboot 百度网盘资源

    提醒:同志们这是记录,视频文件是加密的,请勿下载 基础班第十三期:http://pan.baidu.com/s/1c2GcvKG 密码: 743j 基础班第十四期链接: http://pan.baid ...

  4. python网盘提取码怎么用_Python 一键获取百度网盘提取码

    ''' 遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料 ''' VERSION = "VERSION 1.0.0& ...

  5. 再来一个吊打百度网盘的开源神器,还是99年妹子开发的

    点击上方"视学算法",星标公众号 重磅干货,第一时间送达 来源丨开源最前线(ID:OpenSourceTop) 猿妹整编 百度网盘大家都很熟悉,大家都知道百度网盘如果不开会员就会被 ...

  6. 阿里云网盘内测_阿里云网盘内测,下载10M/s;百度网盘...?

    近日,有好友说阿里也开始做网盘了,这就激起了我的好奇与兴奋,想着目前百度网盘一家独大,下载速度更是喜人,阿里云网盘一定会给大家带来惊喜.据悉,阿里云网盘普通用户有1000GB(1T)空间,会员有6T的 ...

  7. 小米云能同步到华为手机上吗_有没有小米还没涉足的产业?对标百度网盘,小米云盘即将上线...

    打开小米的云服务界面,我们可以看到上面显示"小米云盘即将上线,敬请期待",这难道是小米正式推出网盘服务的信号?. 小米云服务是小米面对用户开放的云端数据备份系统,提供数据同行.数据 ...

  8. 全局拖拽上传文件(类似百度网盘)的实现及踩坑

    记录下,开发需求是实现一个类似百度网盘全局拖拽的功能,兼容浏览器,IE0以上.实现思路是,采用原声的拖拽事件.监听window上的dragenter事件,拖拽目标节点是fixed罩住页面的dropZo ...

  9. 自己动手用Springboot实现仿百度网盘

    项目编号:BS-PT-032 本项目基于Springboot开发实现,前端采用BootStrap开发实现,系统功能完整,交互性好,模仿百度网盘实现相关功能,比较适合做毕业设计使用,创意性强. 开发工具 ...

最新文章

  1. Android应用内展示word、excel、pdf、ppt等文件
  2. Python学习笔记:TypeError: not all arguments converted during string formatting
  3. 在Firefox 58中,WebAssembly组件性能提升了10倍
  4. 黑色全屏个人主页bootstrap4模板
  5. 信安精品课:第2章网络攻击原理与常用方法精讲笔记
  6. 星级评价组件--引发对React组件的思考
  7. 数据结构之树的定义及操作
  8. MATLAB符号运算部分知识总结
  9. 服务器cpu天梯图多核性能,2020年2月cpu处理器天梯图最新高清大图_处理器天梯排行榜...
  10. 凹点匹配分割 matlab,基于凹点和重心检测的粘连类圆形目标图像分割
  11. bugzilla安装
  12. windows下安装禅道
  13. 英文构词法 —— circum- 前缀
  14. java int 比较大小_3个int整数比较大小?
  15. U盘、移动硬盘;固态硬盘、机械硬盘
  16. OpenCV切割大图(边界扩充,全黑图剔除)
  17. 4.10 使用照片滤镜命令修改图像色温和色调 [原创Ps教程]
  18. 国产银河麒麟系统源码安装Openvas
  19. Exception encountered during context initialization - cancelling refresh attempt
  20. Python-3.7.0常用数据类型源码—列表

热门文章

  1. matlab 延迟算子,时间序列分析-----2---时间序列预处理
  2. stackoverflow 搜索问题技巧
  3. 什么是驻点和拐点_拐点和驻点的区别
  4. 如何标题编号自动生成_标题编号的自动生成+自动修改的方法步骤
  5. 052试题 86 - crosscheck 命令及expried
  6. c++读取MP3文件专辑图片、歌手名等ID3v2信息
  7. Linux热潮下,来呆猫云工作站玩转云上部署Linux工作流新思路
  8. PSO算法文献阅读笔记
  9. 大龄程序员的前途令人担忧
  10. 行业标准 | 证券期货业信息系统运维管理规范 JR/T 0099—2012