ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}

本文发布于ACFUN 转载请注明

http://www.acfun.tv/v/ac291028/

随着龙年的到来,ACFUN也要开始新的一年了,这新的一年里 总希望为AC娘做点什么事情,想来想去,一个苦逼的程序员还是为AC写点小工具,做成ACTOOL工具集好了。希望这个工具可以给大家带来些便利,更多的大家想要的功能,让大家一起完成这个东西吧~希望能唤醒一些潜在的AC职人~

下面的工具都是开源的,大家可以随意传播随意更改,但请不要去掉ACFUN的LOGO 

那今天晚上就先写个“楼主是好人”和C#编程的基础教程好了。

不知道大家有没有经常遇到楼主放福利的情况,经常是楼主在上面放东西,楼下一堆“楼主是好人,好人一生平安” 然后留了一地邮箱。


这个情况下作为楼主怎么有那么多的时间来一个一个抓取邮箱啊,所以然最近也打算学一下正则表达式,就顺便连带做了一个楼主是好人的邮箱采集器。(我会跟你们说是因为每次我留下邮箱都没有收到福利才写的么)

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第1张图片

拿这篇

龙年吉祥!西瓜的万张白丝黑丝各种丝福利图包大放送!

http://www.acfun.tv/v/ac290658/

为例子好了

地址就是ac290658

填入捕获,等待一会就可以抓取到全部的邮箱了

当然,为了方便一次性发送福利,所以分隔符号可以设成成分号以便发送(;)

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第2张图片

当然百度贴吧等其他正常网站也可以抓取的

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第3张图片ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第4张图片

其实只要表达式自己写好了 什么都能抓的,比如抓一些MP3文件其他的什么的

关于表达式的写法,我建议使用RegexBuddy

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第5张图片

这个工具可以检测也可以图形化的插入表达式非常方便。

比如希望把这个改造抓取评论中up主留下的115地址 可以把表达式改成 115.com/file/([\w-.]+)ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第6张图片

 ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第7张图片

这样就抓取到了115的地址了,不过由于今晚时间关系,我没写过滤,可能会重复。一开始是想反正邮箱有自带过滤的就没写了 =  =。

 

 

 

接下来就是教大家简单写点小东西,以此来扩充ACTOOL。因为是基础的,所以推荐用很容易使用的C#


其实编程没有大家想象的那么难,不要羡慕技术宅了,他们只是比你们更懂得搜索一下
作为编程入门推荐用C#,做点小工具简单好用。

那么就开始手把手教 0基础的(渴望变成技术宅的)新手做一个小工具。

比如说最近曹老爷这个骚货经常发的“图种”,就是那种图片右键另存为rar格式就有神奇的东西出现的那图种,这个看起来似乎很牛B,但是实际上是很简单就可以实现的。

究竟多简单呢,百度一下好了

百度后发现,原来只需要用一个

copy /b A.JPG+B.RAR C.JPG

的CMD命令就可以实现了 没错,就是把要制作的文件对号入座填写到CMD里面就行了

那么就是这个原理了,软件就是要让复制的过程变得简单,因此我们不想每次都打这个命令
所以我们就让软件帮我们打吧

1:首先装好VS2010
2:打开新建-项目-Visual C# 右边选择Windows 窗体应用程序

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第8张图片ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第9张图片
3:确定后出现一个空白框
4:看到左边有一堆控件, label就是让你写文字 Button就是按钮,textbox框就是输入文本框,你们可以按照我做的原样把控件拖进去

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第10张图片ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第11张图片

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第12张图片

然后点某个控件,可以看到有Text这个属性,就可以改文本名字了

ACFUNProject{网页通用筛选抓取器+C#初学者简易教程}_第13张图片


因为是基础的东西,所以就简单讲了,先双击我们拖出来的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

 

 

 

 

 

 

 

你可能感兴趣的:(project)