您可以免费下载该工具并将其用于您的私人目的。如果您修改此程序并想共享它,请创建一个分支。您必须在顶部包含原始存储库的链接,如下所示:原始存储库:[链接]
高级程序允许您更多地控制其行为并编辑其配置。对于大多数用户来说,标准的就足够了。高级程序版本位于此存储库的“advanced_version”目录中。
我正在创建这个应用程序来学习一些Python并将其作为批量卡下载的备份手段。我有自己用 JS 编写的浏览器插件,它工作得很好,但我正在研究这个解决方案,以防我损坏的插件停止工作。另外,我不会发布该附加组件的源代码,因为它是专门为我制作的 - 所以它有点损坏,但在某种程度上我懒得修复它。这就是这个项目的开始。该计划是使用 Selenium 并提供比当前浏览器插件更多的功能。插件的工作原理是按顺序单击下载按钮,等待硬编码的时间直到下载完成(以防止多次下载,因为该网站不喜欢这样),然后单击下一个按钮移至下一页并重复。现在我想创建另一个解决方案,允许用户创建配置文件以更加自动化下载过程。看看它会带我去哪里。
我已经发现为此目的编写 JS 扩展速度超快,也不那么复杂,但两种解决方案肯定都有其优点和缺点。 (我可能稍后会列出它们)
该软件正在开发中,因此建议阅读 .py 文件内的代码注释,以更好地了解其内部工作原理
该程序是为 db.bepis.moe 制作的 - 因此,如果您不确定可以在某些字段中输入什么值 -> 进入网站 -> 选择游戏 -?检查您可以选择和/或输入搜索表单的内容
选择游戏类型
选择下载类型 -> “基本”允许仅输入“名称”和/或“标签”进行搜索 -> “高级” - 允许设置可用于所选游戏的每个搜索参数(该游戏正在进行中)
为每个提示字段输入值或单击“Enter”以获得默认值。
等待下载完成。
所选游戏的页面已加载,表格由硒填充。
单击搜索按钮后,程序将等待 5 秒以加载网站。
它会每 5 秒下载一次卡,以防止多次下载,因为该网站不喜欢多次下载。 (有些卡可能超过 25MB,这就是为什么最好给它更多的时间而不是更少的时间)//我可能会创建一个函数来检查卡下载是否完成,而不是将来继续处理下一张卡。
如果页面上的卡片少于 24 张,则为最后一页(或仅有一页)-> 下载完成
如果页面有 24 张卡片,但“下一步”按钮被禁用 -> 下载完成
如果按钮处于活动状态 -> 更改 url 并加载页面 -> 开始下载卡片,直到页面上的卡片少于 24 张或“下一步”按钮被禁用。
有些卡很重,甚至超过 25MB - 如果您的互联网速度很慢 - 更改等待时间 - 卡下载之间甚至可以为 20 秒!
代码中对应的SLEEP函数有注释,用#括起来。就像下图所示:
###################################### #BELOW TIME FOR CARD TO BE DOWNLOADED# ######################################
+已知问题是 -> 如果您从 PyCharm 运行该程序,并且可能以任何其他形式运行,恶意软件字节将杀死该程序。禁用它并再次尝试使用它。 //它喜欢杀死python脚本。
为了确保程序下载了所有卡片,您可以使用以下公式:((页数)- 1)* 24 +(最后一页上的卡片数)
对于 7 页,当最后包含 4 张卡片时,它看起来像:6*24+4 = 148 张卡片
对于不太高级的用户:不要使用此脚本下载“实时内容” -> 如果有人将新卡上传到网站,并且它符合您的下载条件,则脚本将不会下载它们。这种情况会改变卡片的顺序,并可能导致在非常活跃的搜索或重复下载中遗漏一些卡片。想象一下网站上有 30 张卡片 - 第 1 页有 24 张卡片,第 2 页有 6 张卡片。您开始下载,在第一秒有人上传了另外 3 张卡片。该页面可以处理 24 张卡片,因此最后 3 张卡片被移至第 2 页,其中现在放置 9 张卡片。但脚本不知道这一点 - 浏览器在此之前已经加载了页面。它有没有移动卡片的网站版本。脚本将页面更改为下一页(第 2 页)。您下载了这 9 张卡片,其中包括您已经拥有的 3 张卡片。