随心涂鸦

怎么去除一些论坛复制文本中添加的大量广告信息?

在一些论坛中(尤其是港澳地区的一些繁体论坛中),当我们从论坛上复制一些文本时,会发现其中被插入了大量乱码、广告、关键字等信息,这是一个比较老式的系统,其用途是防止内容被盗链。但是我一直主张,互联网是一个开放的世界,互联网上的道德是靠个人素质和观念而非强制措施去做的,这种低级的反剽窃系统,首先在实际效果上完全无法避免内容被复制,其次会在客户端增加大量垃圾信息,浪费带宽、服务器资源和客户端资源,而且当我们想要把这些资源收藏下来时又会非常麻烦。

去除这种垃圾信息的方法有很多,我在这里介绍其中一种,这里需要一个支持正则表达式搜索的文本编辑器,我个人惯用收费的EditPlus,如果需要免费软件,那么还有优秀的开源文本编辑器Notepad++可供选择。除此之外,我使用了Adobe Dreamweaver CS5 来减轻一部分工作。

首先来看下面一段文字:

_L 0x016082B8 0x0001869F
;l-]&Z1V+h._)L☆°** 网站名称 **°☆_L 0x01608488 0x0001869F1A,y0O/l%^'s+A
_L 0x01608658 0x0001869F/o6V8x+m1m:o6b:p
_L 0x0160B1D8 0x0001869F!w3p$R2F4m#c;B:a
_L 0x0160B3A8 0x0001869F"Z:T-{-N-F0D5f

这是一段节选自某论坛的PSP游戏金手指代码,我们真正需要的是:

_L 0x016082B8 0x0001869F
_L 0x01608488 0x0001869F
_L 0x01608658 0x0001869F
_L 0x0160B1D8 0x0001869F
_L 0x0160B3A8 0x0001869F

这样一段而已,后面的都是垃圾信息。

完整的代码有过百行,要去除垃圾信息,一行一行手动删除是非常麻烦的。那么要找到快速解决的方法,首先要知道这段垃圾代码的本质是什么:

_L 0x016082B8 0x0001869F<span style="display: none;">;l-]&amp;Z1V+h._)L☆°** 网站名称 **°☆</span>
_L 0x01608488 0x0001869F<span style="font-size: 0px; color:rgb(255,255,255);">1A,y0O/l%^'s+A</span>
_L 0x01608658 0x0001869F<span style="font-size: 0px; color:rgb(255,255,255);">/o6V8x+m1m:o6b:p</span>
_L 0x0160B1D8 0x0001869F<span style="font-size: 0px; color: rgb(255,255,255);">!w3p$R2F4m#c;B:a</span>
_L 0x0160B3A8 0x0001869F<span style="font-size: 0px; color: rgb(255,255,255);">"Z:T-{-N-F0D5f</span>

这样就很明显这些垃圾信息是怎么隐藏在文章中了,一个是使用了display:none的span元素,另一部分则使用了大小为0、颜色为白色的font标签,那么,只需要把包含在这部分中的内容剔除掉就可以了。

  1. 首先在浏览器里右键鼠标,查看源代码,把需要复制的部分的源代码(注意是源代码)复制出来,单独粘贴在一个新文件里,并把这个文件保存为.html。
  2. 用Adobe Dreamweaver CS5 打开这个html文件,点击左侧的工具栏中自动套用格式的按钮。这一步可以让乱七八糟的文件变得有序,节省一些时间,但是并不是必须的,如果您没有这个软件,大可跳过。
  3. 在文本编辑器中打开文件,点替换,勾选下方选项中的”使用正则表达式“,在搜索文本中填入我们要剔除的东西<span style=”display: none;”>.*</span>,中间的”.*”表示任意字符串。替换文本中什么都不要填,点全部替换,会发现所有被<span style=”display: none;”></span>包括着的文本全部被剔除了。
  4. 用同样的方法解决包含在<span style=”font-size: 0px; color:rgb(255,255,255);”>.*</span>中的内容
  5. 优化排版

至此,文本中没用的东西已经被全部剔除了~

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注