迅雷漫画下载工具II 故障日志09.04.12
博客上很多的同学都来反映说是程序一打开就自动停止工作,经过分析发现程序出错很有可能发生在自动更新的过程中。
于是趁着返回学校前的十几分钟,决定抓虫试试。
根据网友们的反映,前几天尚未出现故障,说明软件本身可能出错的几率较小。于是研究目标一下就转到了新浪上……=-=
先来说一下迅雷漫画下载工具II自动更新的工作原理吧
(本程序是我初学VB.NET写的第一个程序……从第一版缝缝补补到现在,连我都不忍心看那些惨不忍睹的代码了……
如果贴出了一些不成熟源码,大家将就看吧=-=千万不要打击我)
1.我把新版本上传到某一外链空间中
2.把新版本的相关信息按照相应格式发到某一篇博文中:
这个博文的地址:http://blog.sina.com.cn/s/blog_58c506600100c37y.html
自动更新数据的格式:
#Region "版本更新格式说明"'版本更新格式'以十个 # 开始,十个 ~ 结束'每部分间以"|"作为分隔符'【0】版本(5位数,转换为Int64):81226'【1】此版本名称:迅雷漫画下载工具II'【2】更新信息:啊啊啊啊$啊啊啊啊啊$啊啊啊啊啊啊$啊啊啊啊 以美元符号($)作为换行符'【3】下载地址:http://www.xxxxxxxxxxxxxx.com/xxxxxx/xxxxx/xx/xxxxxxx/xxx.exe'【4】重要性:0-普通 1-推荐更新(修复了已知Bug) 2-强烈推荐(添加了软件功能) 3-修补了安全漏洞'【5】发布日期:2009年1月1日 #End Region
3.程序在启动时会取得上面文章的源代码,然后对源代码进行分析,并且与当前的版本进行对比后进行相应的提示(是否有新版本)
4.具体的取得方式为:
取得源代码后程序查询字符串”##########”和”~~~~~~~~~~”在文章中的位置,根据定义,这两个字符串分别表示了数据段的起始和结束位置
'开始标记 Private StartSign As String = "##########" '结束标记 Private EndSign As String = "~~~~~~~~~~"
If html1.IndexOf(StartSign) >= 0 ThenDim codeStart As Integer = html1.IndexOf(StartSign) + StartSign.LengthDim codeEnd As Integer = html1.IndexOf(EndSign)Dim code As String = html1.Substring(codeStart, codeEnd - codeStart)
然后使用Split()函数将各个信息分开
'保存原始数据的数组 Private updateInfo() As String
updateInfo = code.Split("|"c) '版本号 newVersion = CLng(updateInfo(0)) '名称 newVersionName = updateInfo(1) '版本描述 newVersionDescribe = "当前最新版本:" & updateInfo(0) & ControlChars.CrLf & _"发布日期:" & updateInfo(5) & vbCrLf & vbCrLf & updateInfo(2) newVersionDescribe = newVersionDescribe.Replace("$", ControlChars.CrLf) '下载地址 newVersionDownloadURL = updateInfo(3) '重要性 newVersionImportant = CInt(updateInfo(4)) If newVersion > currentVersion ThenReturn 1 ElseReturn 0 End If
最后显示出来
本次的更新错误出现在了文章源代码分析上
背景:新浪大概在4月10号左右更新了博文的源代码构成方式,在源代码中新增了<meta>内容以更好地利用搜索引擎提取文章信息
相关HTML源码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="description" content="Kaedei,坏天气,——————————迅雷漫画下载工具Ⅱ更新数据用————————————————————" />
<meta name="keywords" content="Kaedei,坏天气,杂谈" />
可以看出,导致问题的正是Meta中的name属性,因为name=”description”多此一举地将文章的部分内容显示在了HTML的<head>之后(也就是比较靠前的位置),导致第一个”##########”提早出现。
所以程序截取的字符串就是一大堆无用的字符了,然后在类型转换的时候导致了异常产生(此段代码也因为疏忽没有加上Try……Catch),而又因为程序默认开启了自动更新,所以在程序刚一开始的时候就会出现错误,导致停止工作。
我已经修复了这个错误,现在可以正常使用了
以上~
感谢以下网友的反馈:
凉粉仔
jack2002003
林风对月
vita
还有几位匿名的朋友
再次表示感谢!
转载于:https://www.cnblogs.com/kaedei/archive/2009/04/12/TComicX-error090412.html
迅雷漫画下载工具II 故障日志09.04.12相关推荐
- 迅雷漫画下载 v1.0(绿色版) 附源码
发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具. http://anime.xunlei.com/Book/sort 这个网址的全部1100多部漫画全部可以打包下载到本地. 只求完成功能, ...
- 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示
这篇博客介绍一下在公司实习时选做的一个项目,虽然实习期间没有全部完成,但觉得这个项目做好的话挺有意思的,就在之后几天赶着完善了这个项目. 博客最后给出代码地址 这个项目是仿照迅雷,实现一个下载工具. ...
- 懒人的漫画下载工具[基本能用版]
从http://mh.jumpcn.com/上下载漫画. 这个网站的防盗链不够强大,添加一个伪造的http referer header就可以了. 但是图片的URL不是特别规范(有好多种),为了省事就 ...
- java 禁用迅雷_JSP禁用迅雷等下载工具下载文件,强制使用右键另存功能下载文件...
* 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile( ...
- JSP禁用迅雷等下载工具下载文件,强制使用右键另存功能下载文件
* 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile( ...
- Ubuntu 环境中多线程下载工具Axel的安装与使用
今天用Ubuntu系统下载一个文件的时候,对方服务器的速度非常的慢,并且速度会越来越慢.一般下载到10%的时候,速度就会几乎为零. 于是我尝试找找类似迅雷的下载工具软件,发现迅雷并没有提供Linux版 ...
- Ubuntu 18.04/20.04 多线程下载工具AXEL和AIRA2
今天用Ubuntu系统下载一个文件的时候,对方服务器的速度非常的慢,并且速度会越来越慢.一般下载到10%的时候,速度就会几乎为零. Ubuntu 18.04/20.04苦于没有IDM 迅雷这样的下载软 ...
- 推荐一款Linux平台下的BT下载工具
一直以来,没有完全脱离windows,其中一个很主要的原因是Linux下缺少一款可以媲美于迅雷的下载工具,当然Linux下的下载工具也不少,而且功能也已经很是强大,况且脱胎于Unix的Linux始终于 ...
- 一款非常好用的下载工具-Free Download Manager-可代替迅雷使用的下载工具
迅雷作为老牌的下载工具,应该都使用过,然而当前的迅雷在越来越大的基础上,新增了很多非下载的功能,为了追求纯粹的下载体验的用户来说,未免有些冗余.而Free Download Manager作为免费的下 ...
最新文章
- SAP RETAIL MM42进入商品的销售视图系统提示: No basic purchase price relevant to pricing found with schema RM0000
- 如何使用 Mmcv.exe 工具来管理群集消息队列资源[转]
- bootstrap 点击加号 表格_bootstrap中的输入组按钮,点击加号加1,减1子
- 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)
- 服务器重新部署踩坑记
- 文献阅读课12-Fine-Grained Temporal Relation Extraction(19ACL,时间关系,时间持续时间,数据集,语义框架,常识)
- linux 开启关闭tomcat服务器端口,linux系统安装、启动和关闭tomcat
- [leetcode] 1335. 工作计划的最低难度
- Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
- oracle数据库使用
- PC管理端及评委手机打分端的浏览器兼容问题
- 银联证书下载及导出流程
- Citavi 6使用教程
- 生猪价格matlab,2447教务处.doc
- win10系统CUDA10.0安装教程(for tensorflow2.0)
- 报错vs2019 初始值设定项值太多
- m4a转如何快速转换为wav格式呢
- cs231n-(4)反向传播
- canvas长微博生成功能实践
- 多媒体在计算机的应用,计算机多媒体在教学中的应用
热门文章
- 利用油猴插件 Tampermonkey 编写脚本以屏蔽网页指定元素——以屏蔽百度搜索右边的百度热榜为例
- 汇编指令msr_(转)ARM汇编学习笔记——MRS和MSR指令
- STATA学习笔记:egen函数
- Linux环境下安装TASSEL_5_standalone
- 探索MATLAB深度学习
- escape,encodeURI,encodeURIComponent有什么区别?
- 推荐五款免费且优质的自学网站,你值得拥有
- 机器学习【西瓜书/南瓜书】--- 第1章绪论(学习笔记+公式推导)
- 【原创】ppp拨号上网总结
- 2小时入门神经网络与深度学习