域名卡片在简单的出现网格中连接到查询卡片。
只比较你已检查的固定面板。

Actor 是托管的数据采集程序。Task 是已保存的输入预设。Actor 采集源数据行。比较由你在本文中完成。

你在比较什么

域名是你选择要计数的网站主机。查询面板是一份精确短语的短列表。固定是指你在看到结果之前写好该列表,之后不再更改。上限是你要求为一条精确查询保留的最多结果数。

自然结果是指该行不是付费广告。对于自然结果行,isSponsored 为 false。出现是指该域名出现在该查询所保留的样本中。

not_seen_within_cap 表示该查询成功,且该域名在上限内没有出现。source_failed 表示该查询的覆盖情况未知。不要把失败的查询存成 0。unresolved_identity 表示你仍不能把该主机对应到该公司。该主机不是已知的未出现。

排名是该精确采集样本中的顺序。它不是对每个人都成立的排名。

设置必应输入

当前公开的 Google Search Scraper 版本是 1.0.15。该版本可以使用 Google、必应、Brave 和 DuckDuckGo。这些步骤只接受必应。已保存的 Task 是起始输入。它不会替你完成这次比较。

当前已保存的输入如下。你将替换整个查询列表和整个引擎列表。

json
{
  "queries": ["competitor brand", "product category", "best product alternatives"],
  "engines": ["google", "bing", "brave", "duckduckgo"],
  "maxResultsPerExecutedQuery": 20,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
设置必应输入

第一次检查时,只使用 one intended phrase 和必应。把上限设为 2。已检查的验收使用国家 US 和语言 en。safeSearch true 会打开安全搜索筛选。includeSponsoredResults false 表示要求排除付费广告。不存在扩展设置。不要添加 page-limit 字段。已检查的两行试点正好读取了一页。

在运行此输入之前,把词语 one intended phrase 换成你的真实短语。

json
{
  "queries": ["one intended phrase"],
  "engines": ["bing"],
  "maxResultsPerExecutedQuery": 2,
  "country": "US",
  "language": "en",
  "safeSearch": true,
  "includeSponsoredResults": false
}
设置必应输入

对于之后的面板,为每条精确查询选择同一个上限。保持相同的国家、语言、安全搜索和赞助结果设置。之后的上限由你选择。它不是隐藏字段。国家和语言是所请求的设置。它们不能证明读者住在哪里。它们也不保证地图结果或本地结果包。

阅读一行结果

一行是一个引擎、一条查询、一页和一个位置上的一条结果。Actor 可以在一次运行中保留许多查询。它不会为世界上的每个网站各生成一行。

把这些行字段用作源证据:

  • runId 是该次采集运行的 id。
  • country 是所请求的国家。
  • language 是所请求的语言。
  • safeSearch 记录安全搜索筛选是开还是关。
  • engine 是该行的搜索引擎。
  • executedQuery 是实际运行的精确短语。
  • page 是结果页码。
  • rankOnPage 是该页上的位置。
  • rank 是所采集样本中的位置。
  • title 是结果标题。
  • canonicalUrl 是 Actor 清理后的地址。保持该字符串不变。它不是从页面 HTML 读取的 canonical 标签。它也不是原始链接的完整副本。
  • resultDomain 是该地址中的主机。
  • snippet 是搜索结果上的短文本。它不是从页面抓取的文本。它不能证明某项说法。
  • 当该行是付费广告时,isSponsored 为 true。
  • 当该行是广告时,advertiserDomain 是广告主主机。
  • observedAt 是采集时间。
  • schemaVersion 是行格式的名称。

如果某一行的 isSponsored 为 true,不要把它计入自然排名。Actor 不会打开目标页面。它不会去除全部额外页面文本。它不会检查引用。它不会给业务成功打分。它不会安排重复运行。与你的决定有关的页面,由你自己打开。

阅读运行摘要

OUTPUT 是运行摘要。它与单条结果行不是同一事物。在把一条查询标为有用之前,先阅读 OUTPUT。

  • queriesRequested 是你发送的短语数量。
  • searchesCompiled 是已准备的搜索数量。
  • executionsPlanned 是已计划的引擎运行数量。
  • enginesSuccessful 是成功的引擎数量。
  • enginesFailed 是失败的引擎数量。
  • pagesAttempted 是已尝试的页面数量。
  • pagesParsed 是已读取的页面数量。
  • resultsSaved 是已保留的结果行数量。
  • engineStatusCounts 按引擎汇总状态。
  • engineResultCounts 按引擎汇总已保存的行。
  • queryResultCounts 按查询汇总已保存的行。
  • stopReason 说明该次运行停止的原因。

一次当前的必应对照使用了短语 Python asyncio documentation,以及 US 和 en。它返回了两个直接的 docs.python.org URL。引擎是 bing。所执行的查询就是该同一短语。两行都在第 1 页。排名是 1 和 2。每一行都有 observedAt。OUTPUT 报告了一个成功的引擎、一个已读取的页面,以及 stopReason result_caps_reached。

该对照显示,必应对 URL、排名和采集时间的支持有限。它不是竞品面板测试。它不验证 Google、Brave 或 DuckDuckGo。它不验证每个运算符、每个国家,也不验证重复的排名测试。一条失败的 Google 路径含有重定向链接,其最终页面不明确。不要把这些链接当作已验收的页面地址。

达到上限的成功查询可以支持 not_seen_within_cap。失败的查询不能。上限或空结果并不表示你看到了整个索引。

进行比较

  1. 先选择一个目标市场和一种语言。选择你需要作出的网站决定。写下查询列表。写下竞品列表。在看到谁出现之前完成这些工作。看到结果之后,不要增加或删除查询。看到结果之后,不要增加或删除公司。
  2. 打开每家公司当前的公开网站。在运行之前写下精确的主机规则。说明子域是否计数。名称相似的博客、目录或联盟网站不会自动算作该公司。此身份检查由你完成。Actor 不验证公司。如果主机仍然不明确,标为 unresolved_identity。不要把该单元格当作已知的未出现。
  3. 先用上面的必应输入运行一个短语。使用 maxResultsPerExecutedQuery 2。使用你所请求的国家和语言。已检查的验收只使用了 US 和 en。把 safeSearch 设为 true。把 includeSponsoredResults 设为 false。没有 page-limit 字段,也没有扩展字段。只有首次必应测试成功完成后,才运行完整的固定列表。对每条精确查询使用同一个上限。保持相同的市场设置。
  4. 保留每一条有用的行。保存地址、引擎、排名和 observedAt。为每条已计划的查询阅读 OUTPUT。如果查询失败,覆盖情况未知。如果查询成功,且一个已知域名在上限内缺失,标为 not_seen_within_cap。不要用 0 填充失败的查询。
  5. 制作一张竞品按查询的表。只使用 present、not_seen_within_cap、source_failed 或 unresolved_identity。同一域名在同一查询中的多个已验收页面仍只计为一次出现。保留页面行。这些行显示哪些地址和排名支持该单元格。不要按标题合并行。不要丢弃一条不同的查询字符串。
  6. 对每个已知域名,用出现的查询数除以有用查询数。有用查询是在相同上限和设置下成功的查询。同时报告你计划了多少条查询。这个分数不是全部搜索的份额。它不是搜索量。它不是广告需求。它不是客户需求。如果许多已计划的查询失败,不要给出该面板比较,或者将其标为部分。不要隐藏失败的查询。
  7. 对每个域名,在它出现的每条查询上保留最佳自然排名。条件均值只是这些最佳排名的平均值。排除没有看到该域名的查询。不要把缺失的排名记为 0。不要把它记为上限加 1。不要把缺失的排名当作已经看到后再取平均。出现查询数量不同的域名,可能仅因这一原因而看起来更强或更弱。本文比较的是各查询之间的出现情况。它不按天追踪同一个排名。
  8. 检查这些缺口。然后选择你要阅读的页面。在此样本中没有出现的域名,以后仍可能出现。它可能在另一条查询中出现。它也可能对另一个人出现。该表不说明某个页面为何出现。它不预测流量或销售额。此必应方法得出的结论不能用于说明 Google 或其他国家的搜索结果。

虚构的逐步演算示例

本节中的所有数值都是虚构的。它们不是产品结果。该面板是固定的必应、国家 US、语言 en、仅自然结果,以及前五名上限。公司域名是 A、B 和 C。主机规则只计精确的公司主机。子域只有在同一公司主机上才计数。同名博客不计。此虚构内容中没有主机是 unresolved_identity。

已计划的查询是 Q1、Q2、Q3 和 Q4。Q1、Q2 和 Q3 成功。Q4 在源处失败。以下是页面观察结果。

虚构的逐步演算示例
查询域名页面最佳自然排名其他自然排名状态
Q1A124present
Q1B11无present
Q1C1无无not_seen_within_cap
Q2A1无无not_seen_within_cap
Q2B12无present
Q2C13无present
Q3A13无present
Q3B11无present
Q3C1无无not_seen_within_cap
Q4A无无无source_failed
Q4B无无无source_failed
Q4C无无无source_failed

A 有两个 Q1 页面,排名分别为 2 和 4。这两个页面仍是一次 Q1 出现。它们不会把 A 从 2/3 改成 3/3。

有三条查询是有用的。已计划的查询有四条。出现表如下。

虚构的逐步演算示例
域名Q1Q2Q3Q4在有用查询上出现
Apresentnot_seen_within_cappresentsource_failed2/3
Bpresentpresentpresentsource_failed3/3
Cnot_seen_within_cappresentnot_seen_within_capsource_failed1/3

最佳自然排名只使用出现的查询。

虚构的逐步演算示例
域名最佳排名条件均值平均值中的查询数
A2 和 32.52
B1、2 和 14/3,约 1.333
C331

A 的条件均值是 (2 + 3) / 2 = 2.5。B 的条件均值是 (1 + 2 + 1) / 3 = 4/3,约 1.33。C 的条件均值是 3 / 1 = 3。这些平均值使用的查询数量不相同。它们不能代替出现表。它们并不表示某个域名在每次搜索中都领先。

每个 not_seen_within_cap 单元格的结论仅限于前 5 个自然结果行。在这部分样本中未出现,并不能证明该域名在整个索引中都不存在。

对 A、B 和 C,Q4 都是 source_failed。该单元格是未知的。它不是已知的未出现。不要说 B 在 4 条查询中的 3 条上出现。不要把 3/3 称为全部四条已计划查询的覆盖。两个计数都要保留:四条已计划,三条有用。此处的面板说法只覆盖这三条成功的查询。如果失败的已计划查询太多,不要给出该比较,或者将其标为部分。

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑