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


    本文发布于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

  • 相关阅读:
    errorC4430解决办法(vs2013)
    c++获取系统当前时间写入txt文件
    黑苹果安装记录(史上最简单的安装教程——小白福利)
    运行vs生成的exe出现应用程序无法正常启动(0x000007b)解决方案(亲测有效)
    数据可视化工具grafans,忘记密码恢复默认admin(基本使用教程)
    opencv任意形状角度透视变换(代码分析清晰)
    opencv两张规格一样的图片拼接(纵向和横向)
    linux3
    linux2
    linux1
  • 原文地址:https://www.cnblogs.com/maybreath/p/2419728.html
Copyright © 2020-2023  润新知