1 我们查看源代码之后获得的网页文件如下图所示,一般都是href="/p-286018571.html"我们只要能提取到所有的"/p-XXXXXXXX.html"这样的东西,至于前面的http://www.docin.com则可以手动批量添加,甚至后面的.html也可以手动添加,我们只要得到一串数字就可以了。我们最终希望的是能够获取如下面的这种网址列表,最笨的办法就相当于我们一个一个点击打开,然后到IE地址栏去复制粘贴一样.当然这里我们讲如何使用软件提高效率.
http://www.docin.com/p-286018691.html
http://www.docin.com/p-286018692.html
http://www.docin.com/p-286018693.htmlhttp://www.docin.com/p-286018694.html
2 UE并没有提供查找并批量输出的功能,所以我们需要借助另外一个软件,Replace Pioneer。安装之后还是先打开文件,这里最好先做一个范例,我们只拿最典型的一部分,并保存为txt格式。
3 运行Ctrl+H,打开替换面板。在Search for pattern里面输入"[0-9]{9}",其中"[0-9]"表示只匹配数字,"{9}"表示匹配次数,这里匹配9次。正好和所有的文档的超链接相同。在Replace with pattern里面输入"$match\n",含义是匹配但是不改写,因为我们一般的查找和替换是把所有要查找的替换为一个东西,这里我们查找到了所有东西但是并不替换,只是保留。注意去掉Print unmatched units,这个选项是指输出不匹配的东西,我们不要输出不匹配的东西,所以不勾选。后面的Regular Expression表示使用正则表达式,需要勾选。然后点击Replace,In Page和Out Page表示输入页面和输出页面。
4 可以发现的确获取到了我们需要的东西。
5 但是这样做不太严谨,因为可能我们以后查找的文件里面正好有九个数字,但是并非跟在p-后面,在.html前面。所以我们还需要改进正则表达式的匹配模式。如下图所示,我们需要过滤掉下面的东西。
7 在匹配模式中加入前缀/p和后缀.html发现的确也奏效了,过滤掉了我事先放进去的干扰。(这里需要说明,这个正则表达式并非在哪里都奏效,比如刚才的UE软件,只能匹配"/p-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].html"而不能匹配"/p-[0-9]{9}.html",每个软件的正则表达式还不一样。)
8 然后就是批量添加前缀了。其实很简单,在每个行首/p的前面加上http://www.docin.com,结果在P2页面中显示。
9 最后就是保存了,按Ctrl+S保存,我保存为test.txt文件。
10 操作真实的网页文档是否也奏效呢?从结果可以发现,的确是100个,这个和我们在一开始"每页显示一百个"是吻合的,所以应该没有多余的和漏掉的网址。举一反三,以此类推,我们去批量获取电子邮件地址,QQ号,手机号,身份证号,邮政编码,IP地址都只需要稍微改改正则表达式的规则即可.