利用Python和谷歌云从服务器日志数据中提取有意义的SEO信息

在我关于搜索引擎领域的第一篇文章中,我将引用Ian Lurie的话作为开头:

日志文件分析是一门失落的艺术。但它可以挽救你的搜索引擎优化屁股!

明智的话。

然而,从服务器日志文件获取我们需要的数据通常是费力的:

庞大的日志文件需要健壮的数据摄入管道、可靠的云存储基础设施和可靠的查询系统

为了将神秘的原始日志数据转换为清晰的比特,适合于探索性数据分析和可视化,还需要细致的数据建模

在这个两部分系列的第一篇文章中,我将向您展示如何轻松地将分析扩展到更大的数据集,并从服务器日志中提取有意义的SEO见解。

所有这些都只是Python和谷歌云的一点点提示!

以下是我们具体的行动计划:

1 .我先给你们一些背景:

什么是日志文件,为什么它们对SEO很重要

如何找到他们

为什么在服务器日志分析方面,Python本身并不总是奏效

#2 -然后我们会把事情做好:

创建一个谷歌云平台帐户

创建一个谷歌云存储桶来存储我们的日志文件

使用命令行将我们的文件转换为一种兼容的格式,以便查询

手动和编程地将我们的文件转移到谷歌云存储

最后,我们将进入python化的本质——我们将:

使用Bigquery查询我们的日志文件,在Colab内部!

构建一个数据模型,使我们的原始日志更加清晰

创建分类列,这将进一步加强我们的分析

过滤并导出结果到.csv

在本系列的第二部分(将在今年晚些时候提供)中,我们将讨论Python中更高级的数据建模技术,以评估:

机器人爬行体积

爬预算浪费

复制URL爬行

我还将向您展示如何聚合和连接日志数据来搜索控制台数据,并使用Plotly Dash创建交互式可视化!

兴奋?让我们开始!

系统需求

在本文中我们将使用谷歌Colab。这里没有特定的要求或向后兼容性问题,因为谷歌Colab位于云中。

可下载的文件

可以在这里访问Colab笔记本

日志文件可以在Github上下载- 4个样本文件,每个20 MB,跨度4天(每个文件1天)

可以肯定的是,笔记本已经以闪电般的速度和没有任何障碍测试了几百万行!

序言:什么是日志文件?

虽然我不想过多谈论日志文件是什么,为什么它们对搜索引擎优化是无价的,等等(见鬼,已经有很多关于这个主题的好文章了!),这里有一些上下文。

服务器日志文件记录向web服务器发出的每个请求的内容。

每一个。单身。一个。

在最原始的形式下,日志是无法解读的,例如,下面是一些来自Apache webserver的原始行:

吓人的,不是吗?

原始日志必须被“清理”以便进行分析;这就是数据建模发挥作用的地方。稍后会详细介绍。

虽然日志文件的结构主要取决于服务器(Apache, Nginx, IIS等),它有常青属性:

服务器IP

日期/时间(也称为时间戳)

方法(GET或POST)

URI

HTTP状态代码

用户代理

通常可以添加其他属性,例如:

Referrer:将用户链接到您的站点的URL

当发生重定向时,重定向URL

发送的文件大小(以字节为单位)

花费的时间:处理请求和发送响应所需的时间

为什么日志文件对SEO很重要?

如果你不知道它们为什么重要,请阅读这篇文章。明智的时间!

访问您的日志文件

如果你不知道从哪里开始,最好的办法是询问你的(客户端的)Web开发人员/DevOps,看他们是否能允许你通过FTP访问原始服务器日志,最好不要应用任何过滤。

以下是在三个最流行的服务器上查找和管理日志数据的一般指南:

Apache日志文件(Linux)

NGINX日志文件(Linux)

IIS日志文件(Windows)

我们将在这个项目中使用原始Apache文件。

为什么当涉及到日志分析时,只有熊猫是不够的

panda(用Python构建的开源数据操作工具)在数据科学中非常普遍。

切分表数据结构是必须的,而且当数据能够装入内存时,哺乳动物的工作非常出色!

也就是说,只有几个gb。但不是tb。

除了并行计算(例如Dask, PySpark),数据库通常是无法装入内存的大数据任务的更好解决方案。使用数据库,我们可以处理消耗tb级磁盘空间的数据集。任何东西都可以轻松地查询(通过SQL)、访问和更新!

在这篇文章中,我们将通过谷歌BigQuery在Python中以编程方式查询原始日志数据。它易于使用,负担得起和闪电般的速度-甚至在兆兆字节的数据!

Python/BigQuery组合还允许您查询存储在谷歌云存储上的文件。甜蜜的!

如果您不喜欢谷歌,并且希望尝试其他替代方案,那么Amazon和Microsoft也提供云数据仓库。它们与Python集成得也很好:

滚动至顶部