Google Dorking用于商业研究:操作符、示例和API自动化
Senior Cybersecurity Analyst
TL;DR:
- Google dorking 意味着使用运算符构建搜索词以缩小公共结果。 这个短语听起来具有对抗性,但相同的技术对市场调研、采购、内容审计和公共文档发现都是有用的。
- 从商业问题开始,而不是一堆运算符。
site:、filetype:、引用的短语和排除项在表达明确的包含或排除规则时最有用。 - 将结果视为潜在客户,而不是完整的数据库。 搜索运算符受到索引和检索行为的限制;即使是
site:查询也并不是详尽的索引报告。 - 保持白帽界限。 搜索公共商业信息。不要针对凭证、私人个人数据、暴露的管理员界面或您没有权限访问的材料。
- 无抓取的 Google Search API 可以自动化可重复的查询集。 存储查询、市场、时间戳、源 URL、标题、摘要和位置;然后通过规范化的 URL 进行去重。
什么是 Google Dorking?
Google dorking 是将普通的 Google 查询与限制结果集的搜索运算符结合的实践。它也被称为高级 Google 搜索。
这一技术本质上并不是一种安全活动。研究人员可以使用它来查找公共定价页面、采购文件、年报、合作伙伴目录、政策更新或在网站特定部分发布的内容。
运算符仅仅是一个过滤器。授权和意图仍然很重要。搜索引擎中出现的结果并不授予访问私人系统、规避控制、收集受限数据或重新发布受版权保护材料的权限。
商业研究运算符备忘单
运算符行为可能会改变,因此在自动化之前请测试确切的查询。Google的 官方搜索优化指南 记录了引号、排除和 site: 的使用。Google Search Central 另行记录了几个对网站所有者有用的运算符。
| 运算符或模式 | 目的 | 商业示例 |
|---|---|---|
"exact phrase" |
要求一个短语 | "request for proposal" logistics |
site:example.com |
限制结果到一个域或前缀 | site:vendor.example pricing |
filetype:pdf |
偏向某种文件类型 | filetype:pdf "annual report" robotics |
-term |
排除某个词 | "partner program" -jobs |
OR |
接受两个术语中的任意一个 | "case study" (retail OR ecommerce) |
site:example.com/path/ |
限制到一个 URL 前缀 | site:example.com/resources/ "market report" |
谨慎使用括号并检查实时结果。搜索引擎将人类查询解释为,而不是严格的数据库查询语言。
Google Search Central 运算符参考 记录了 site: 和 filetype: 等用于调试的运算符。它的指导很重要:运算符受限于索引和检索限制,因此它们不能替代 Search Console 或第一方网站库存。
白帽界限
本指南用于公共商业研究。
好的目标包括:
- 公共产品、定价、合作伙伴和文档页面;
- 公共 RFP、政策文件、报告和备案;
- 公共事件、位置和目录页面;
- 公司的公共页面,用于内容和索引审计;
- 进行竞争或市场分析所需的公共提及。
不要设计查询来定位密码、API 密钥、个人记录、机密导出、暴露的备份、私人摄像头、入侵的登录面板或其他敏感材料。如果公共结果似乎暴露了一个秘密或私人记录,请停止收集,并遵循受影响组织的负责任披露流程。
同时在适用的情况下尊重爬虫指令、网站条款、版权、隐私法和速率限制。搜索发现并不消除下游义务。
商业研究示例
查找公共定价和包装页面
当您已经知道供应商时,请使用域限制:
site:vendor.example (pricing OR plans OR enterprise)
此查询可以揭示当前的定价、比较和企业页面。它并不能证明每个计划都被索引或缓存的摘要反映了实时页面。打开结果并记录观察时间。
发现公共 RFP 和采购文件
将文档类型与确切短语和行业术语结合:
filetype:pdf "request for proposal" "data platform"
添加一个地区、组织类型或日期短语以缩小集合。在将潜在客户添加到管道之前,请验证发布组织、截止日期和文档版本在源域上。
映射合作伙伴和集成生态系统
搜索供应商的公共合作伙伴或集成区域:
site:vendor.example (partners OR integrations) -jobs
排除项去掉了一些常见的无关招聘页面。收集后规范化合作伙伴名称;一个徽标网格和一个市场列表可能指的是同一家公司。
审核公共内容部分
将查询限制为路径:
site:example.com/resources/ "web scraping"
这对于发现谷歌可能为某个主题提供的部分URL非常有用。这并不是一个详尽的统计。谷歌的site: 操作符文档明确警告,结果可能会省略索引的URL,并且裸site:查询的排名方式与普通查询不同。
监控公共政策或合规更新
在权威域名上搜索确切的政策语言:
site:regulator.example filetype:pdf "effective date" "data processing"
保留来源URL和发布日期或修订日期。搜索结果摘要并不是法律文本。
系统化地构建查询
从研究表格开始。
| 组件 | 问题 | 示例 |
|---|---|---|
| 主题 | 什么实体或市场在范围内? | 仓库机器人 |
| 证据 | 哪个公共文献可以回答该问题? | 年度报告 |
| 来源边界 | 哪些域名或部分是权威的? | 监管机构或供应商域名 |
| 格式 | 文档类型是否有用? | |
| 排除项 | 什么会产生可预测的噪声? | 职位,职业 |
| 市场 | 哪个国家/语言上下文重要? | 美国,英语 |
然后构建最窄的查询,同时仍然留有发现的空间。一次性添加每个操作符可能会隐藏有用的结果并使调试变得不可能。
保持查询注册表,包括易于阅读的目的、所有者、审核日期和允许的目标类别。当通过API调度查询时,该注册表特别重要。
使用谷歌搜索API自动化谷歌搜索技巧
Scrapeless Google Search API 将查询转换为结构化搜索记录。当研究团队需要可重复的设置、分页、去重和导出,而不是手动复制和粘贴时,API非常有用。
下面的脚本运行一组允许的公共商业查询,遵循有限的结果偏移,规范化URL,并写入CSV文件。
前提条件:实时请求需要
SCRAPELESS_API_KEY中的Scrapeless API密钥。在将每个查询添加到允许列表之前,审核其范围和授权。
python
import csv
import os
from datetime import datetime, timezone
from urllib.parse import urlsplit, urlunsplit
import requests
API_URL = "https://api.scrapeless.com/api/v1/scraper/request"
QUERIES = [
'filetype:pdf "request for proposal" "data platform"',
'site:example.com/resources/ "market report"',
]
def canonical_url(raw: str) -> str:
parts = urlsplit(raw)
host = (parts.hostname or "").lower()
if host.startswith("www."):
host = host[4:]
netloc = host
if parts.port:
netloc = f"{host}:{parts.port}"
path = parts.path.rstrip("/") or "/"
return urlunsplit((parts.scheme.lower(), netloc, path, parts.query, ""))
def organic_results(payload: dict) -> list[dict]:
if isinstance(payload.get("organic_results"), list):
return payload["organic_results"]
data = payload.get("data", {})
if isinstance(data, dict) and isinstance(data.get("organic_results"), list):
return data["organic_results"]
return []
def search(query: str, start: int) -> dict:
response = requests.post(
API_URL,
headers={
"x-api-token": os.environ["SCRAPELESS_API_KEY"],
"Content-Type": "application/json",
},
json={
"actor": "scraper.google.search",
"input": {
"q": query,
"gl": "us",
"hl": "en",
"google_domain": "google.com",
"start": start,
},
},
timeout=60,
)
response.raise_for_status()
return response.json()
def collect(queries: list[str], offsets=(0, 10)) -> list[dict]:
observed_at = datetime.now(timezone.utc).isoformat()
rows_by_url = {}
for query in queries:
for start in offsets:
payload = search(query, start)
for fallback, item in enumerate(organic_results(payload), start=start + 1):
raw_url = item.get("link") or item.get("url") or ""
if not raw_url.startswith(("http://", "https://")):
continue
url = canonical_url(raw_url)
candidate = {
"observed_at": observed_at,
"query": query,
"position": item.get("position", fallback),
"title": item.get("title", ""),
"snippet": item.get("snippet", ""),
"url": url,
}
previous = rows_by_url.get(url)
if previous is None or candidate["position"] < previous["position"]:
rows_by_url[url] = candidate
return sorted(rows_by_url.values(), key=lambda row: (row["query"], row["position"]))
def write_csv(rows: list[dict], path="business_research.csv") -> None:
fields = ["observed_at", "query", "position", "title", "snippet", "url"]
with open(path, "w", newline="", encoding="utf-8") as handle:
writer = csv.DictWriter(handle, fieldnames=fields)
writer.writeheader()
writer.writerows(rows)
if __name__ == "__main__":
write_csv(collect(QUERIES))
该脚本将片段排除在去重键之外,但保留查询字符串,因为查询参数可以识别真正不同的公共资源。根据研究目标,您还可以删除已知的跟踪参数,例如UTM标签。
Google Search API文档 是当前请求字段的真实信息来源。在最终确定解析器之前,测试一个请求并检查其实际响应。
分页、去重和审核
分页扩展了样本;它并不创建详尽的网络数据库。限制每个查询的偏移量,并在作业配置中记录该深度。
在多个层面去重:
- 精确的标准URL;
- 已知的跟踪参数变体;
- 下载后的文档校验和,当集合被授权时;
- 分析过程中的规范化组织和标题。
不要仅根据标题进行合并。不同的组织通常发布名为“年度报告”或“提案请求”的文档。
在结果成为销售线索、合规项或竞争声明之前,添加人工审核队列。搜索摘要可能会截断上下文,日期可能会引用示例,PDF可能会被替代。
开始使用Scrapeless抓取
使用Scrapeless增强您的网页抓取和自动化工作流程!
今天注册并获得5美元的免费积分 — 无须信用卡。立即在Scrapeless Dashboard申请您的免费积分。
操作限制
搜索操作符是发现工具,而不是保证。
- 从外部查询的角度来看,索引覆盖是不完整的。
- 不同结果类型下,操作符可能会有所变化或表现不同。
- 摘要可能与当前页面不匹配。
- 位置、语言、设备和时间会影响结果。
- 重复的等效查询可能会产生重叠的URL。
- 公共结果可能仍包含不应被收集或重新分发的材料。
记录查询设置,并将失败单独审核,不要与空结果集混淆。请求错误意味着未知;空的成功响应意味着该样本查询未返回结果。
结论
Google dorking 在无聊时最有用:一个记录在案的研究问题、一小部分经过测试的操作符、一个公共数据边界以及一个可审查的导出。Scrapeless Google Search API 增加了可重复性和结构化输出,而无需改变研究者验证来源和尊重访问边界的责任。
从 Google Search API 开始,保持 定价页面 上的当前账户费率,并在安排之前现场测试每个操作符。
要进行关于搜索数据服务的补充比较,请阅读 Google Search API 指南。
将公共搜索转化为可审查的数据集
加入 Scrapeless 社区进行伦理研究和数据管道模式:Discord · Telegram。
在 app.scrapeless.com 创建一个免费账户,运行一个经批准的公共查询,并在扩大范围之前审查导出的网址。
常见问题解答
问:Google dorking 非法的吗?
搜索操作符是普通的搜索功能。合法性和政策合规性取决于你目标是什么、如何访问它、你收集了什么以及你如何使用它。本指南仅限于对公共商业信息的授权研究。
问:哪些 Google 操作符对商业研究有用?
引用短语、site:、filetype:、带负号的排除以及经过仔细测试的 OR 查询涵盖了许多定价、采购、报告、合作伙伴和内容审核工作流程。
问:site:example.com 是否显示每个已索引的页面?
不。Google 表示 site: 结果不一定是详尽无遗的。当你需要对自己控制的网站进行权威的索引诊断时,请使用 Search Console 或第一方网站清单。
问:我可以自动化 Google dork 查询吗?
可以。Google Search API 可以以一致的市场设置运行批准的查询并返回结构化记录。边界分页、去重网址、保留时间戳,并在采取行动之前审查结果。
问:自动化的 dork 列表中绝对不应包括什么?
不要针对凭据、秘密、私人个人数据、暴露的管理系统、机密文件或任何你没有授权访问的来源。如果敏感材料意外出现,请停止并使用负责任的披露。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



