【问题标题】:Classify different versions of the same webpage对同一网页的不同版本进行分类
【发布时间】:2014-08-02 09:04:47
【问题描述】:

有一个网页在加载时会随机放置表单/控件/谷歌广告。然而,该系列是封闭的——根据我的测试,至少有三种可能的变化,其中两种非常常见,第三种非常罕见。

我希望能够根据每个变体对该网页进行分类。我尝试分析每个变体的 html 源,但根据 Python 字符串 equals 和 Python difflib,所有变体的 html 完全相同。似乎没有任何信息指定放置谷歌广告或控件的位置。

例如,考虑一张带有两个框的图片,一个红色的(称为框 A)和一个蓝色的(称为框 B)。盒子本身永远不会改变位置,但是占据它们的位置的东西会改变。

现在考虑两种可能的变体,每次加载/打开网页时都会选择其中一种。

变体 1:假设 50% 的时间,谷歌广告位于框 A(红色),因此网站控件位于框 B(蓝色)。

变体 2:假设还有 50% 的时间,谷歌广告位于框 B(蓝色),因此网站控件位于框 A(红色)。

那么,如果我加载网页,如何根据其变化对其进行分类?

【问题讨论】:

    标签: python html ads adsense


    【解决方案1】:

    如果 HTML 每次都绝对相同,则可能是在客户端使用 javascript 完成变化。

    答案取决于您所说的“分类”是什么意思。如果您只想知道在页面的任何给定负载上,小部件在哪里,您可能必须使用 Selenium 之类的东西,它实际上在浏览器中打开页面并运行 javascript,而不仅仅是获取 HTML 源代码。然后,您将需要使用 Selenium 来评估一些检测小部件位置的 javascript。 python 有一个selenium 模块,使用起来相当简单。考虑将它连接到 PhantomJS,这样您就不必打开浏览器窗口。

    【讨论】:

    • 谢谢。顺便说一下,当网站在每次加载时随机重新排列其小部件时,这叫什么?我相信它被用来阻止机器人(例如 Java.robot)。
    • 视情况而定。如果他们向不同的访问者群体提供 2 个版本的页面并衡量他们分析中的差异,那就是 A/B 测试。如果他们没有测量任何东西,它可能只是出于某种原因随机化页面。
    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2022-12-18
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多