跳转到主要内容

SE::DuckDuckGo - DuckDuckGo 搜索结果爬虫工具

DuckDuckGo

爬虫工具概览

DuckDuckGo 搜索结果爬虫工具。借助 DuckDuckGo 爬虫工具,您可以获取海量的链接库,供后续使用。您可以直接使用在 DuckDuckGo 搜索栏中输入的查询格式,包括搜索指令(intitle, inurl, site 等)。详情请参阅官方页面 DuckDuckGo Search Syntax

A-Parser 的功能允许您保存 DuckDuckGo 爬虫工具的抓取设置以便后续使用(预设),设置抓取计划等。您可以使用自动查询扩展、从文件替换子查询、遍历字母数字组合和列表,以获取尽可能多的结果。

得益于内置强大的模板引擎 Template Toolkit,您可以按所需的格式和结构保存结果,该引擎允许对结果应用额外的逻辑,并以各种格式输出数据,包括 JSON, SQL 和 CSV

采集数据

  • 搜索结果中的链接、锚文本和摘要 ($serp.$i.link, $serp.$i.anchor, $serp.$i.snippet)
  • 广告结果中的链接、显示链接、锚文本、摘要、域名和广告位置 ($ads.$i.domain, $ads.$i.link, $ads.$i.visiblelink, $ads.$i.anchor, $ads.$i.snippet, $ads.$i.position, $ads.$i.page)
  • 相关关键词列表 ($related.$i.key)
采集数据

功能

  • 支持所有 DuckDuckGo 搜索运算符 (intitle:, inurl:, site: 等)。详情请参阅官方页面 DuckDuckGo Search Syntax
  • 指定页数(1 到 10 页)
  • 除自然搜索结果外,还采集广告块相关关键词
  • 可按选定地区(Region 选项)进行数据抓取,并指定搜索结果语言(Language 选项)
  • 可开启安全搜索(Safe search 选项)并限制搜索结果的时间范围(Serp time 选项)
  • 可分别为搜索页面和结果数据请求开启 HTTP/2
  • 如果 DuckDuckGo 不通过 HTTP 返回搜索结果数据,则自动切换到内置浏览器

应用场景

  • 收集链接库 - 用于 A-Poster, XRumer, AllSubmitter 等。
  • 检查网站索引情况
  • 查找网站反向链接(提及)
  • 任何涉及以某种形式抓取 DuckDuckGo 的其他场景

查询

查询时需要指定搜索词,例如:

Football  
测试
site:a-parser.com
爬虫工具 site:a-parser.com
test -site:tests.com
IoT filetype:pdf

查询替换

您可以使用 内置宏 来扩展查询,例如我们想获取一个非常大的论坛数据库,指定几个不同语言的基础查询:

forum
论坛
foro
论坛

在查询格式中指定从 a 到 zzzz 的字符遍历,此方法可以最大程度地轮换搜索结果并获得许多新的唯一结果:

$query {az:a:zzzz}

该宏将为每个原始搜索查询创建 475254 个额外查询,总计将产生 4 x 475254 = 1901016 个搜索查询,这个数字令人印象深刻,但对于 A-Parser 来说完全不是问题。在每分钟 2000 个查询的速度下,此类任务仅需 16 小时即可处理完毕。

使用运算符

您可以在查询格式中使用搜索运算符,这样它将自动添加到列表中的每个查询:

site:$query

结果输出示例

得益于内置的模板引擎 Template Toolkit,A-Parser 支持灵活的结果格式化,允许以任意形式以及结构化形式(如 CSV 或 JSON)输出结果。

导出链接列表

与 SE::Google 类似。

与 SE::Google 类似。

与 SE::Google 类似。

与 SE::Google 类似。

输出广告块

与 SE::Google 相同。

以 SQL 格式保存

与 SE::Google 类似。

将结果转储为 JSON

与 SE::Google 类似。

结果处理

A-Parser 允许在数据抓取过程中直接处理结果,本节列出了 DuckDuckGo 爬虫工具最常用的案例。

与 SE::Google 类似。

与 SE::Google 类似。

提取域名

与 SE::Google 类似。

去除锚点和摘要中的标签

与 SE::Google 类似。

与 SE::Google 类似。

可能的设置

参数名称默认值描述
Pages count5要抓取的页面数量(1 到 10),如果搜索结果没有下一页,数据抓取可能会提前结束
RegionUS (English)选择搜索结果区域
LanguageEnglish (United States)选择搜索结果语言
Safe searchModerate安全搜索:StrictModerateOff
Serp timeAny time搜索时间范围:过去一天、一周、一月、一年或全部时间
Use HTTP/2确定在请求搜索页面时是否使用 HTTP/2 代替 HTTP/1.1
Use HTTP/2 for links请求搜索结果数据时同上
User agentChrome 150, Windows请求页面时的 User-Agent 请求头,也用于浏览器。如果留空,将使用当前版本 Firefox 的 User-Agent
Get first link with browser pages count5可同时使用的内置浏览器页面数量。浏览器仅用于获取搜索页面:如果 DuckDuckGo 未通过 HTTP 返回搜索结果数据,则下一次尝试将通过浏览器执行