最近在网络工作工作,主要是做网站,给网页加上cms后台,由于有一些网站的内容是从原来的网站上借鉴过来的,所以要下载一些内容填充到后台中,由于手式操作比较困难,所以就写了一个小工具.
输入要下载的网址
以这个为例
http://www.lqpcjx.com/main.asp?bigproclassid=2&smallproclassid=0&id=9
这个地方显示的是产品列表,我们要取出其中的图片地址,一般情况下,我们用的是正则表达式来匹配我们想的内容,但是正则表达式写起来有一定的难度(至少我是这样的),所以,我们先下载下来网站的源代码,然后写一些正则表达式来,试验一下,我们的正则表达式是否正确,是否匹配到了我们想要的内容,
选择,页面的编码,如页面的编码是GB2312,或者UTF-8的,选择好编码不至于了现乱码,点击下载一下,就会在下载的内容这个文件框中出现下载的内容,这个框比较小,如果想看全一点的代码,可以点击,放大查看网页源文件,
会弹出一个form来显示文本框中的文本,如果只是查看,不做修改,点击,关闭按钮就可以了,如果要修改内容,就点击修改好了就可以,这样文本框中的文本就会变成被修改的内容了.
这时,就可以输入正则表达式了,点击开始匹配就可以了,查看匹配出的结果了
匹配的结果就在匹配结果中显示
显示form2这个按钮是弹出form2这个form来下载我们需要的内容的
第一个配置页面,是显示出我们想的下载的页面,及内容,
页面里写了一个规则可以批量添加地址,这个地址是用一个arraylist来保存,不会出现重复的内容,如果只是一个单面,那就不用理会,后面的通配符选项,直接点击添加就可以了,地址列表会在网址列表中,显示出来,如果出现列表里有不需要下载的地址,选中,然后按删除键就可以了.
下面的是正则表达式规则,添加方法也地址方法一样.
地址列表与正则列表都准备好了,就可以点击按钮进行匹配处理了,在处理的时候有一个选项,从前一个结果中匹配,
这个选项的效果是第二个表达式的源内容是从第一个表达式的匹配结果中匹配的,
举个例子,
http://www.lqpcjx.com/main.asp?pid=72&id=9
我们要匹配这个页面的产品图像与产品介绍,因为这个页面如果使用这个正则表达式的话, src="uploadfile/\d+.jpg"
会出现很多个结果,我们想要的只有一个,那么我们就先选中产品描述的内容,
images/index1_32.jpg[\S\s]*?\[ (编号一)
我的正则表达式不好,只能用位置来限制内容了,我们取出内容后, 再用这个下面这个正则表达式来src="uploadfile/[\S\s]+?.jpg" (编号二)匹配出结果
然后我们选择选添加编号一,然后再添加编号二这个正则表达式
然后勾选住从前一个结果中匹配,然后点击开始处理,这个按钮,,运行完成后,就会保存到这个目录应用程序目录下按日期时间创建一个文本文件,程序运行完成后,就会自动打开这个目录,
我们匹配出的内容大体上就是这些了
http://www.lqpcjx.com/uploadfile/2012917104011924.jpg
http://www.lqpcjx.com/uploadfile/201292711514802.jpg
http://www.lqpcjx.com/uploadfile/201210129266632.jpg
这个页面是用来下载的一个页面
左边是状态栏显示下载了哪些项目.
右边是下载哪些内容,
将上面匹配出的地址写入到文件名及地址中就可以下载了
这两个文本框的内容就是根据ID编号下载文件及重命名文件,
举个例子比如说
产品编号是
http://www.lqpcjx.com/main.asp?pid=70&id=5
我们可以写一个正则表达式来,匹配出产品名称,及图片地址,
http://www.lqpcjx.com/uploadfile/2012917104011924.jpg
这篇文章适用于对正则表达式有一定了解的,这样的人除了我们们程序员还有什么人呢?把源代码放在下面,有需要的人拿去改吧,解决方案是myregex.sln,vs2008的