本文发布于ACFUN 转载请注明
(http://www.acfun.tv/v/ac291028/)
随着龙年的到来,ACFUN也要开始新的一年了,这新的一年里 总希望为AC娘做点什么事情,想来想去,一个苦逼的程序员还是为AC写点小工具,做成ACTOOL工具集好了。希望这个工具可以给大家带来些便利,更多的大家想要的功能,让大家一起完成这个东西吧~希望能唤醒一些潜在的AC职人~
下面的工具都是开源的,大家可以随意传播随意更改,但请不要去掉ACFUN的LOGO
那今天晚上就先写个“楼主是好人”和C#编程的基础教程好了。
不知道大家有没有经常遇到楼主放福利的情况,经常是楼主在上面放东西,楼下一堆“楼主是好人,好人一生平安” 然后留了一地邮箱。
这个情况下作为楼主怎么有那么多的时间来一个一个抓取邮箱啊,所以然最近也打算学一下正则表达式,就顺便连带做了一个楼主是好人的邮箱采集器。(我会跟你们说是因为每次我留下邮箱都没有收到福利才写的么)
拿这篇
龙年吉祥!西瓜的万张白丝黑丝各种丝福利图包大放送!
http://www.acfun.tv/v/ac290658/
为例子好了
地址就是ac290658
填入捕获,等待一会就可以抓取到全部的邮箱了
当然,为了方便一次性发送福利,所以分隔符号可以设成成分号以便发送(;)
当然百度贴吧等其他正常网站也可以抓取的
其实只要表达式自己写好了 什么都能抓的,比如抓一些MP3文件其他的什么的
关于表达式的写法,我建议使用RegexBuddy
这个工具可以检测也可以图形化的插入表达式非常方便。
比如希望把这个改造抓取评论中up主留下的115地址 可以把表达式改成 115.com/file/([\w-.]+)
这样就抓取到了115的地址了,不过由于今晚时间关系,我没写过滤,可能会重复。一开始是想反正邮箱有自带过滤的就没写了 = =。
接下来就是教大家简单写点小东西,以此来扩充ACTOOL。因为是基础的,所以推荐用很容易使用的C#
其实编程没有大家想象的那么难,不要羡慕技术宅了,他们只是比你们更懂得搜索一下
作为编程入门推荐用C#,做点小工具简单好用。
那么就开始手把手教 0基础的(渴望变成技术宅的)新手做一个小工具。
比如说最近曹老爷这个骚货经常发的“图种”,就是那种图片右键另存为rar格式就有神奇的东西出现的那图种,这个看起来似乎很牛B,但是实际上是很简单就可以实现的。
究竟多简单呢,百度一下好了
百度后发现,原来只需要用一个
copy /b A.JPG+B.RAR C.JPG
的CMD命令就可以实现了 没错,就是把要制作的文件对号入座填写到CMD里面就行了
那么就是这个原理了,软件就是要让复制的过程变得简单,因此我们不想每次都打这个命令
所以我们就让软件帮我们打吧
1:首先装好VS2010
2:打开新建-项目-Visual C# 右边选择Windows 窗体应用程序
3:确定后出现一个空白框
4:看到左边有一堆控件, label就是让你写文字 Button就是按钮,textbox框就是输入文本框,你们可以按照我做的原样把控件拖进去
然后点某个控件,可以看到有Text这个属性,就可以改文本名字了
因为是基础的东西,所以就简单讲了,先双击我们拖出来的Button控件
会自动跳转到cs代码文件,这个时候就是让你写按下这个Button的时候会发生什么事情
那我想让他执行CMD上面那段代码,怎么办?不会写啊
那百度吧,新手无限百度就可以了 找到执行CMD命令的C#代码了
public void RunCmd(string cmd) //隐式执行CMD
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine(cmd);
proc.Close();
}
作为新手的话 看不懂也无所谓,只要能会用,等以后就能领悟这段代码的意思了
这段代码是一个“方法”,方法中不能定义另一个方法,所以我们把这段代码贴在
private void button1_Click(object sender, EventArgs e) { }
外面
贴完后回到那个空空的
private void button1_Click(object sender, EventArgs e) { }
我们现在就是要往{ }里面写代码,要怎么写呢,因为我们刚刚找到了那段执行CMD的代码,所以直接就调用RunCmd这个方法就可以了
我们往空空的{}里面写上 RunCmd("notepad");
然后试试看按下F5启动程序,点一下你的那个Button看看,是不是跳出一个记事本了?
没错,刚刚就是在cmd命令下 打下了 notepad 这个行命令,启动了记事本,所以我们只需要把上面那个notepad换成 copy /b A.JPG+B.RAR C.JPG 就行了
但是A\B\C这些文件都是未知的,所以要让用户自己选。 这个时候可以让用户自己填写这些地址,然后我们把这个地址作为参数传入进去就可以了。为了最大程度方便,我写成了拖入式的方法。
至于拖入文件获取文件路径的这个我已经写好了,既然是0基础的就暂时讲这些好了,其他的也差不多是这样的。
我留个作业好了
1:参照批量截取AC评论,做一个百度贴吧 所有该贴评论都能截取到的功能,输入百度贴子ID获取该贴所有评论
2:做一个重复过滤(提示:利用split将截取的内容分组再百度个方法过滤即可。)
如果还是不懂的可以参见我的源代码,多多百度 多多学习一下。希望ACFUN人才辈出 多多为AC新的一年里重生做贡献!
http://115.com/file/e7h0vvd2
#源代码及程序.rar