使用 Python 脚本分析网站的 SEO 和死链接
Python 的核心理念是自动化重复性任务,从而为您在搜索引擎优化 (SEO) 方面的其他工作节省更多时间。虽然 Python 可以为您节省大量时间和精力,但目前并没有多少 SEO 从业者使用 Python 来解决问题。例如,Python 可用于以下任务:
- 数据提取
- 数据准备
- 分析和可视化
- 机器学习
- 深度学习
本文将主要关注数据提取和分析。每个脚本所需的模块都将予以说明。
Python SEO 分析器
一个非常实用的网站分析脚本叫做“SEO 分析器”。它是一个全能的网站爬虫,可以分析以下信息:
- 字数统计
- 页面标题
- Meta 描述
- 页面关键词
- 警告
- 缺少标题
- 缺少描述
- 缺少图片 alt 文本
这对于快速分析您网站的基本 SEO 问题非常有用。由于页面标题、meta 描述和页面关键词是重要的排名因素,因此该脚本非常适合清晰地了解可能存在的任何问题。
使用 SEO 分析器
在为该脚本安装了必要的模块 (BeautifulSoup 4 + urllib2) 并将 Python 更新到 3.4+ 版本后,您就可以技术上使用该脚本了。然而,Json 或其工作变体对于导出您从 SEO 分析器获得的数据可能很有用。安装脚本后,您可以使用以下命令:
seoanalyze http://internetvergelijnk.nl/
seoanalyze https://telefoonvergelijk.nl --sitemap https://telefoonvergelijk.nl/sitemap_index.xml
如上述示例所示,对于 internetvergelijk 和 telefoonvergelijk,都可以通过爬取网站或网站的 XML 站点地图进行 SEO 分析。另一个选项是从分析中生成 HTML 输出,而不是使用 json。这可以通过以下命令完成:
seoanalyze http://internetvergelijk.nl/ --output-format-html
如果您已经安装了 json 并希望导出数据,请使用以下命令:
from seoanalyzer import analyse output = analyse(site, sitemap) print(output)
您还可以选择另一种方式,将分析作为脚本运行,如下例所示:
运行 --output-format html 脚本后,这将把文件导出为 html 格式。这个 seoanalyze 脚本非常适合优化您的页面标题、meta 描述、图片和页面关键词。它也比 Screaming Frog 快得多,所以如果您只寻找这些信息,运行 seoanalyze 脚本会更高效。
链接状态分析器
使用 Python 进行搜索引擎优化的另一种方法是使用一个爬取您网站并分析您的 URL 状态码的脚本。这个脚本叫做 Pylinkvalidator,可以在这里找到。如果您使用 Python 3.x 运行它,只需要 BeautifulSoup。如果您运行的是 2.x 版本,如 2.6 或 2.7,则不需要 BeautifulSoup。
然而,为了加快爬取速度,安装以下库可能会很有用:
1) lxml – 加快 HTML 页面爬取速度(需要 C 语言库) 1) gevent – 使 pylinkvalidator 能够使用绿色线程 1) cchardet – 加快文档编码检测速度
请记住这一点,它们对于爬取大型网站以及仅仅增强链接状态分析器可能非常有用。
这个脚本的主要功能是爬取网站的整个 URL 结构,以分析每个 URL 的状态码。对于大型网站来说,这是一个非常漫长的过程,因此建议使用可选库来加快速度。
使用链接状态分析器
Pylinkvalidator 有大量的不同用法选项。例如,您可以:
- 显示进度
- 爬取网站以及属于其他主机的页面
- 只爬取单个页面及其链接到的页面
- 只爬取链接,忽略其他(图片、样式表等)
- 使用比默认更多的线程或进程爬取网站
- 更改您的用户代理
- 爬取多个网站
- 检查 robots.txt
- 爬取 body 标签和 paragraph 标签
建议通过 -P
或 --progress
显示进度,因为如果没有它,您将不知道您的爬取何时完成,没有任何视觉迹象。用于爬取更多线程(--workers='number of workers'
)和进程(--mode=process --workers='number of workers'
)的命令也非常有用。
当然,该脚本还有许多其他选项可以探索。以下示例展示了一些可能的用法:
pylinkvalidate.py -p http://www.example.com/
上述功能爬取网站并显示进度。
pylinkvalidate.py -p workers=4 http://www.example.com/
此功能以多线程方式爬取网站并显示进度。
pylinkvalidate.py -p --parser=lxml http://www.example.com/
此功能使用 lxml 库以加快爬取速度并显示进度。
pylinkvalidate.py -P --types=a http://www.example.com/
上述功能只爬取您网站上的链接(<a href>
),忽略图片、脚本、样式表和您网站上的任何其他非链接属性。这在爬取大型网站的 URL 时也是一个有用的功能。脚本运行完毕后,您将获得一个列表,其中包含通过爬取您的网站找到的 4xx 和 5xx 状态码的 URL。除此之外,您还将获得一个链接到该页面的 URL 列表,这样您就可以更轻松地修复死链接。常规爬取不显示任何 3xx 状态码。有关哪些页面可以链接到您的页面的更详细信息,请尝试以下功能:
pylinkvalidate.py --report-type=all http://www.example.com/
这提供了关于页面状态码以及所有其他链接到该页面的页面的信息。
一个非常有用的 SEO 工具,您可以用它来爬取您的网站,查找死链接 (404) 和服务器错误。这两种错误都可能对您的 SEO 工作不利,因此请务必定期爬取您自己的网站,以便尽快修复这些错误。
结论
尽管这些脚本非常有用,但在 SEO 领域,Python 还有许多不同的用途。挑战自己创建能够提高 SEO 工作效率的脚本。有很多 Python 脚本可以让您的生活更轻松。有用于检查 hreflang 标签、规范化标签、robots.txt 等的脚本。毕竟,在当今时代,当可以自动化时,谁还会手动完成任务呢?