使用 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='线程数'
)和进程(-- mode=process --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 时,这也是一个有用的函数。 脚本运行完成后,您将获得一个 URL 列表,其中包含爬取您的网站时找到的状态代码为 4xx 和 5xx 的 URL。 除此之外,您还将获得一个链接到该页面的 URL 列表,以便您更容易修复死链。 常规爬取不显示任何 3xx 状态代码。 有关您的页面可以从哪些 URL 访问的更多详细信息,请尝试以下函数:
pylinkvalidate.py --report-type=all http://www.example.com/
这提供了有关页面的状态代码以及链接到该页面的所有其他页面的信息。
一个非常有用的 SEO 工具,您可以使用它来爬取您的网站以查找死链 (404) 和服务器错误。 这两种错误都可能对您的 SEO 工作不利,因此请务必定期爬取您自己的网站,以便尽快修复这些错误。
结论
虽然这些脚本非常有用,但 Python 在 SEO 领域还有许多其他用途。 挑战自己创建可以提高 SEO 工作效率的脚本。 有很多 Python 脚本可以使您的生活更轻松。 例如,有用于检查 hreflang 标签、规范标签、robots.txt 等的脚本。 因为在当今时代,当它可以自动化时,谁还会手动操作呢?