这是 Web Crawler Pageviews 的仪表板报告的 SQL 版本。
此仪表板报告显示了在特定日期范围内,网站每天从网络爬虫收到的总页面浏览量。了解网络爬虫的行为可以帮助网站管理员了解搜索引擎机器人访问和索引其网站的频率。
-- [params]
-- date :start_date = 2024-01-07
-- date :end_date = 2024-02-08
SELECT
ar.date::date AS "date",
SUM(CASE WHEN ar.req_type=6 THEN ar.count ELSE 0 END) AS "Crawler Views"
FROM application_requests ar
WHERE req_type IN (6)
AND ar.date::date BETWEEN :start_date AND :end_date
GROUP BY date
ORDER BY date
SQL 查询说明
该查询在 application_requests 表上运行,该表记录了对 Discourse 应用程序的各种请求类型,包括网络爬虫发出的请求。以下是查询工作原理的分步细分:
- 参数:
- 查询接受两个参数
:start_date和:end_date,它们定义了报告的时间范围。两个日期参数都接受YYYY-MM-DD格式。
- 查询接受两个参数
- 选择和过滤:
- 查询从
application_requests表中选择req_type为6的记录。req_type列对请求类型进行分类,值为6特别标识网络爬虫发出的请求。 - 它使用
:start_date和:end_date参数进一步过滤这些记录,仅包括在指定日期范围内的记录。
- 查询从
- 聚合:
- 查询按请求日期 (
ar.date::date) 对结果进行分组。此分组允许按天聚合爬虫浏览量。 - 然后,它计算每组的
ar.count的总和,其中ar.count代表爬虫请求的数量。此总和在输出中标记为"Crawler Views"。
- 查询按请求日期 (
- 排序:最后,结果按日期升序排序。此排序便于在指定时间段内轻松可视化爬虫活动趋势。
示例结果
| date | Crawler Views |
|---|---|
| 2024-01-07 | 3217 |
| 2024-01-08 | 2342 |
| 2024-01-09 | 3995 |
| 2024-01-10 | 3667 |
| 2024-01-11 | 3095 |
| … | … |