【问题标题】:Reversing minificiation/obfuscation of CSS styles on web page反转网页上 CSS 样式的缩小/混淆
【发布时间】:2020-02-22 20:28:54
【问题描述】:

网页有时具有混淆/缩小的 CSS 类是正常​​的。这具有(可能是故意的)副作用,即由于随机类名而防止页面抓取。

页面定义明确 - 虽然每次页面加载时 html 都不同,但呈现的页面始终看起来相同。比如font-size: 20px; color: black;总是有标题,或者描述总是font-size: 15px; line-height: 1.5;等等……

是否有取消随机化类名的过程? 或者一种基于渲染样式选择元素的方法(例如font-size: 20px; color: black;)?

<div tabindex="0" class="styles__Header-sc-120s71t-1 bVobsP">
    <h6 class="jss85xpic jsspbfkgl jssfrl2gs" style="max-width: 100%;">Title</h6>
    <div class="styles__Description-sc-120s71t-2 cilEqp">
        <p class="jss85xpic jsspbfkgl jssou361l" style="max-width: 100%;">Description</p>
    </div>
    <div class="styles__ItemsList-sc-120s71t-3 gyRIpM">
        <div itemscope="" itemtype="http://schema.org/Product" role="button" tabindex="0" class="styles__Wrapper-sc-1xl58bi-2 gKTcIQ" style="max-width: 100%;">
            <div class="styles__FlexContainer-sc-1xl58bi-4 bLvOGI">
                <div class="styles__TextWrapper-sc-1xl58bi-9 liomPZ">
                    <div class="styles__Title-sc-1xl58bi-5 eqysaj">
                        <h3 class="jss85xpic jsspbfkgl jssws5ijf" style="max-width: 100%;"><span itemprop="name">Item 1</span></h3>
                    </div>
               </div>
           </div>
       </div>
   </div>
</div>

【问题讨论】:

  • 去混淆器如何知道原作者的意图?至于你的第二个问题,你可以使用计算的样式来编写脚本。
  • 这是一个很好的观点,不可能对类名进行去混淆处理。您是什么意思“使用计算的样式编写脚本”?有没有办法根据计算的样式进行选择,或者计算元素的计算样式?

标签: javascript html css web-scraping jss


【解决方案1】:

如果每次课程都真正随机化,我不确定您可以在那里做什么。并且通过样式搜索需要蛮力检查每个元素的计算样式。

如果您正在寻找一种遍历此 HTML 的方法:形状是否始终一致?您可以使用标签选择器、“直接子”选择器 [&gt;] 和“开头”选择器 [^](对于那些 styles__*** 类)的组合来尝试找到您正在寻找的元素.

例如:标题为[class^="styles__Header"] &gt; h6。描述为[class^="styles__Description"] &gt; p

【讨论】:

  • 形状总是一致的。使用复杂的 CSS 选择器听起来很可行。尽管它可能效率低下,但暴力破解包含数百万个元素的文档不会超过几秒钟。是否可以通过样式进行搜索或确定元素的最终样式是什么?
  • 我不知道有什么方法可以通过样式进行专门搜索。我认为你只需要遍历每个元素(也许至少尝试通过标签名称等一些细节进行过滤)并调用getComputedStyle(el) 并检查。但这将是超级脆弱的。如果形状是一致的,我会说你最好的选择肯定是解决这个问题。
  • OP - SamVK 最后所做的术语是属性 = 值 css 选择器,然后使用 ^(开头)operator 以防您希望能够查找这些:developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
猜你喜欢
  • 2012-06-01
  • 2011-10-23
  • 2018-01-17
  • 2021-12-31
  • 2017-09-19
  • 2011-12-07
  • 2014-12-01
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多