【发布时间】:2018-06-26 08:22:46
【问题描述】:
虽然我的 CSS 每天都在改进,但我的 HTML 编码技能略高于新手水平,所以我什至不知道这是否可以做到。虽然我没有 Python、Php、Ruby、Javascript、Perl、Fortran 蜂鸣器!(只是想确保你还是醒着的大家伙)我愿意学习。下面的切片是仅包含其一种样式的 365,937 个字符中的前 970 个字符(0.003%)。我渴望删除的正是这些和其他广告代码墙块:
<style type="text/css">#Ad2, #AdText, #Ad_Top, #Adbanner, #Adfox_Banner, #Ads, #AdvertFieldBottom, #AdvertFieldCenter, #AdvertFieldTop, #Advertisement, #AdvertisingTopLine, #BanHolder28-1, #BannerGBottom, #BannerGCenter, #BannerGIMG, #BannerGTop, #BannerH2Left, #BannerHIMG, #BannerHLeft, #BannerUnderBroChat, #JaboxAdBarOuter, #METABAR_IFRAME, #MarketGidComposite1001, #PopUpWnd, #PopWin, #PopWin_popupsu_notds, #RichBanner_center, #__adIframe, #ad-200, #ad-slides, #ad2, #ad4, #ad7, #adHeadBanner, #adL, #adP, #adWrapper, #ad_help_link, #ad_hide_mask_ad_0, #ad_hide_mask_ad_1, #adbns, #adf_notifiers_wrap, #adsCSS, #advRightBox, #advbroker_place_1, #advbroker_place_10, #advbroker_place_2, #advbroker_place_3, #advbroker_place_4, #advbroker_place_5 { display: none!important; }
#advbroker_place_6, #advbroker_place_7, #advbroker_place_8, #advbroker_place_9, #advertbox, #advertising_floater, #advertisment, #advrich, #advunder-top, #adzerk3, #app-banners, . . .</style>
我经常保存 HTML 页面以供我自己的私人参考,我想知道是否有任何离线¹小部件/应用程序/宏/技术可以用来剥离
- 文件的广告代码,以及
- 所有非内容数据代码(脚本、表单、事件等)
我想保留作者页面的视觉风格,但要消除臃肿,我想如果 stackoverflow 上的高水平人才找不到解决方案,那么 没有人 可以。我对正则表达式有基本的了解,除了 Notepad++,我是以下资产的常规用户:
- Macromedia 的 Dreamweaver 8
- 文本板(8.1 版)
- Ultra-Edit-32(版本 13)
- 记事本++
- Nir Sofer 的 magnificent suite of tools
- SysInternals 的(同样)suite of tools
可以吗?感谢大家。 :)
¹出于隐私原因,我想避免使用在线服务
【问题讨论】:
-
您可以使用regular expressions 和javascript 来查找
#ad{..}直到,并删除它们。当然,还有更多。您不能简单地查找#Ad,因为非广告元素可以命名为#Additional-info,并且会被捕获并删除。您可以使用正则表达式将带有#ad{..}的任何内容保存到一个数组中,然后查找id={matched}。如果匹配匹配iframe(通常是广告所在的位置,您可以将其从样式和 HTML 中删除。 -
我同意你的观点。这些大量的广告服务不是在某个地方收集的,比如一个 wiki,这样我就可以在 Textpad 中运行一个宏并将它们清除掉吗?它可能不会得到所有这些,但我认为它会剥离大量的它们。 . .
-
我不确定它们是否在任何地方收集。看起来你有一个数据库要启动。
-
在这个线程中 — stackoverflow.com/questions/743524/… — 我刚刚了解到这些广告商通常使用 javascript 或 iframes (?) 如果是这样,那些是搜索参数?但那我如何将它们与内容相关的代码区分开来呢?
-
好吧,就像我在评论中提到的那样,您在 css 中取匹配项
#Ad2,删除#并查看它是否匹配id="Ad2",如果它确实删除了该元素或样式标签。