优化器中的抓取错误

已发表: 2022-04-17

有时 SISTRIX Crawler 无法完全捕获页面上的所有内容。 在这里,我们来看看最常见的原因以及原因,并向您展示这些问题的解决方案。

SISTRIX 爬虫

所有与 SISTRIX Toolbox 相关的访问均由 SISTRIX 爬虫执行。 这个爬虫可以通过两个不同的特征来识别:一方面它是用户代理,每次访问页面时都会提交它。 默认情况下,用户代理是:

 Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)

另一方面,SISTRIX Crawler 的所有 IP 地址都指向域“sistrix.net”的主机名。 例如,我们在 IP 136.243.92.8上的爬虫将返回 Reverse-DNS-Entry 136-243-92-8.crawler.sistrix.net

SISTRIX 爬虫会持续密切关注访问页面的加载速度,并将请求新页面的速度调整到这个速度。 这样,我们可以确保我们不会超载网络服务器。 更多信息请访问 crawler.sistrix.net。

在优化器中,您还可以控制优化器爬虫的用户代理和爬取强度。 您可以在“项目管理 > 爬虫”下的“爬取设置”和“爬取速度”框中的每个项目中找到这些设置。

机器人.txt

在首次访问网站之前,我们的爬虫会在域的根目录以及每个主机名上请求一个名为“robots.txt”的文件。 如果 Crawler 找到此文件,它会对其进行分析并密切观察文件中发现的规则和限制。 将接受仅适用于“sistrix”的规则以及带有标识符“*”的一般规则。 如果您使用 robots.txt 文件,我们要求您检查内容以确保 SISTRIX 爬虫没有被意外限制。

如果您在 robots.txt 中引用站点地图,我们的抓取工具会将其作为抓取基地进行访问。

饼干

SISTRIX 爬虫在检查页面时不会保存 cookie。 请确保我们的爬虫可以访问页面的所有部分,而无需接受 cookie。 您可以在“Crawler-Settings”下的“Project-Management”中找到我们爬虫的IP。

JavaScript

我们的爬虫不使用 JavaScript。 请确保所有页面都可以作为静态 HTML 页面访问,以便我们的爬虫可以分析它们。

服务器端限制

SISTRIX Crawler 可以在服务器端进行限制。 在这种情况下,我们的爬虫在首次访问页面时会收到一条带有 HTTP-status-code 403(受限)的错误消息。 之后,它将无法访问此服务器上的任何页面。 这样的服务器端限制可以设置在不同的系统级别上。 一个好的起点是检查 Apache-webserver 的“.htaccess”文件。 如果这里没有找到线索,您应该联系提供商或主机。 遗憾的是,我们自己无法解除这些限制。

常见限制示例

robots.txt 限制

如果 robots.txt 限制了我们的优化器抓取工具,您将收到“robots.txt 阻止抓取”错误。 请检查您的 robots.txt 中是否存在一般(用户代理:*)或特定(用户代理:Sistrix)限制。 如果您在项目的爬虫设置中更改了用户代理,请也检查这些设置。

仅抓取少量页面或未抓取页面

为什么我们的爬虫只能抓取少量页面甚至根本无法抓取页面有多种原因。 在优化器项目中,转到“分析 > 专家模式”。 在那里,您将找到该域上所有已爬网 HTML 文档的详尽列表。 您可以通过在表格中向右滚动一点来找到状态代码。 这应该告诉您为什么没有抓取与此域关联的所有页面。

  • 200 :如果状态码是200,但是没有其他页面被爬过,原因往往是以下之一:
    • 缺少内部链接:我们的爬虫会跟踪所有未被爬虫阻止的内部链接。 请检查起始页面上是否有内部链接,以及目标页面是否可能被 robots.txt 或爬虫设置阻止我们的爬虫。
    • Geo-IP 设置:为了以每个用户的相应语言显示网站,检查 IP 的来源国。 我们所有的爬虫都位于德国,如果您希望它访问地理 IP 屏障后面的所有可用语言内容,则有必要将我们的爬虫 IP 列入白名单。
  • 301 / 302 :如果出现状态码 301 或 302,请检查链接是否指向不同的域 - 例如 sistrix.at,通过 301 重定向导致 sistrix.de。 Optimizer 爬虫始终停留在项目设置中输入的域(或主机或目录)上。 如果我为 sistrix.at 创建一个项目,我们的爬虫将识别 301 重定向并以专家模式显示它,但不会跟随重定向到 sistrix.de,因为这是一个不同的域。
  • 403 :如果状态码 403 是即时传递的,或者在几个可爬取页面(状态码 200)之后只显示 403 码,您应该检查服务器为什么限制我们的爬虫请求页面。 请参阅“服务器端限制”条目。
  • 5xx :如果状态码 500 或 5xx 显示在状态码字段中,这意味着由于服务器错误,服务器无法处理我们的请求。 在这种情况下,您应该等待几分钟,然后使用“Project-Management”菜单中的“Restart Crawler”按钮。 如果 5xx 状态码不断出现,请检查服务器过载且无法传递页面的原因。

为什么 Google 会找到比 SISTRIX 其他/更多的内容?

我们的爬虫总是从项目的起始页开始,尽管可能会在爬虫设置中添加更多起始页。 从这一点开始,我们将跟踪所有未被阻止的内部链接。 在这些链接页面上,我们将跟踪所有内部链接,直到找到所有我们尚未请求的链接。

可能发生的情况是,例如,未在内部链接的 AdWords 目标网页不会出现在结果中。 通常这样做是为了不影响 AdWords 跟踪。 这意味着这些页面对我们的爬虫来说是不可见的。 当然,谷歌知道这些页面。

如果您通过 Google 输入我们项目的站点地图,它可以在 robots.txt 中链接到它。 这样,我们的爬虫就可以识别并将其用作爬虫基地。

Google 搜索的索引页面与优化器中抓取的页面数量之间可能存在差异的另一个原因可能是 Google 搜索索引中的重复内容。