【问题标题】:How to detect which ecommerce software is being used如何检测正在使用的电子商务软件
【发布时间】:2016-08-31 12:24:52
【问题描述】:

我正在用 C# 制作一个需要查找网上商店的网络爬虫。我遇到的问题是我需要检测网页是否是网上商店。如果是,我需要找出它使用的是什么类型的电子商务软件。但问题是我不知道你如何在源代码中检测到它。

我还有一个名为 builtwith 的 Chrome 插件,它可以检测各种软件。但我还没有弄清楚他们是如何做到的。

如果有人能帮我解决这个问题就好了

【问题讨论】:

  • 如果开发人员正确地构建了站点,那么与第 3 方的交互将被抽象化,并且响应中不会有任何指示。您尝试做的事情充其量是不可靠的。

标签: c# asp.net web-scraping web-crawler e-commerce


【解决方案1】:

在给出实际答案之前,值得注意的是,您的提议可能违反了许多网站的使用条款。您应该花时间调查您可能会为自己和您的组织承担哪些法律责任。

这将是一项耗时的工作,但并不难。您的爬虫只需要简单地使用基于规则的方法来检测页面有效负载中的签名。

  1. 找到您要检测的特定软件。
  2. 找到 2-3 个肯定在使用该软件的网站。
  3. 查看 HTML 有效负载,了解它们具有哪些跨站点通用的脚本、CSS 和 HTML 模式。
  4. 构建一个基于代码的规则,可以一致地检测这些模式。例如:if (html.Contains("widgetName")) isPlatformName = true;
  5. 测试您确定使用该软件的更多网站的模式。
  6. 对每个软件供应商重复。

当目标具有多个版本并且您需要调整规则以了解和了解各种版本时,或者当平台非常相似时,情况会更加复杂。

我认为其中最复杂的部分是有一个经过深思熟虑的机器人问题检测、报告和限制架构。您可能应该将大部分时间花在计划上。

就是这样。

【讨论】:

  • 感谢您的回答,它确实帮助我想出了一个可以用于我的软件的算法。而且我已经意识到可能会违反使用条款。
【解决方案2】:

有几种不同的方法可以确定网站使用的技术。首先,如果您精通技术,您可以右键单击电子商务页面(目录、结帐页面等)并查看源代码。许多平台会在源代码中提供提示,让您了解网站正在运行的内容。

您还可以查看 DNS/托管信息,这将帮助您确定电子商务解决方案是托管还是 SaaS(例如 Shopify)。

您也可以尝试使用InterNIC 并输入域名。结果将返回可以为您指明正确方向的名称服务器。

最后,如果所有这些侦查似乎都太难了,还有更简单的方法!尝试内置。只要您要查找的系统不是自定义/专有的,它通常非常可靠。在BuiltWith 中输入域,它会显示平台、使用的小部件、分析和跟踪代码、CDN、CMS、支付处理器等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2018-07-10
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多