抓取的工作原理
URL来源
爬虫必须从某个地方开始。
通常的一个机制:创建一个列表,列出他们通过页面找到的所有 URL。
另外一个机制:通过用户或者具有页面列表的各种系统创建的站点地图来查找更多 URL。
抓取队列
(部分参考后文中的抓取控制及抓取活动)
所有需要爬取或重新爬取的 URL 都会被安排优先级并加入到爬取队列中。
这基本上是 Google 想要抓取的 URL 的有序列表。
问题1:能否插队
问题2:优先级怎么确定的
爬虫(参照后文部分的爬虫指令)
抓取页面内容的机制(参见后文部分的抓取控制部分)
问题1:怎么让爬虫来
问题2:怎么让爬虫不来
问题3:怎么让爬虫稳定高效的来
处理(部分参照规范化)
这些是规范化的处理机制,渲染页面,就像浏览器加载页面一样,并处理页面以获取更多要抓取的 URL,我们后面会讨论这些机制。
渲染
渲染就是像浏览器一样加载页面,加载 JavaScript 和 CSS 文件。这样做是为了让 Google 可以看到大多数用户会看到的内容。
索引(收录)
用于储存 Google 向用户显示的页面。
抓取控制
有3种方法可以控制在你的网站上可被抓取的内容:
1、Robots.txt
Robots.txt 文件会告诉搜索引擎他们可以和不可以访问的页面。
需要说明的是,如果链接指向了这些页面,即使 Google 不可以访问该页面,也可能会将它们编入索引。
这可能有点令人困惑,但如果你想防止页面被索引,请查看本指南以及开头的流程图。
2、抓取频率
你可以在 robots.txt 中使用一个 crawl-delay 指令,许多抓取工具都支持该指令,你可以设置它们抓取页面的频率。
不过可惜的是,Google并不支持该指令。
对于 Google,你需要按照规则在 Google Search Console 中更改抓取速度。
(现在GSC后台的规则已经不适用新用户,老用户的规则依然有效。)
3、访问限制
如果你只希望某些用户可以访问该页面,不希望搜索引擎访问该页面,那么以下3种可能是你想要的:
a. 某些登录页面;
b. HTTP 认证 (需要密码才能访问的地方);
c. IP 白名单 (只允许特定的 IP 地址访问页面)
这种类型的设置最适用于内部网络、会限定的内容、测 试、或开发中的站点。它允许一组用户访问该页面,但搜 索引擎将无法问它们并且不会索引这些页面。
如何查看抓取活动
对于 Google
查看正在进行的抓取活动最简单的方法是:使用 Google Search Console 抓取统计报告,该报告为你提供有关抓取你网站的更多信息。
查看网站上的所有抓取活动的方法是:需要访问服务器日志并需要使用工具来更好地分析数据。
如果你的主机有一个像 cPanel 这样的控制面板,你应该可以通过一些工具例如 Awstats 和 Webalizer 访问原始日志。
(对于非技术人员不建议考虑这个行为,大部分WP建站的还是考虑利用GSC查看)
抓取调整
每个网站的抓取预算都是不一样的,这取决于 Google 抓取网站的频率以及你的网站允许抓取的数量的组合。
抓取频率高的:往往是更受欢迎的页面以及经常更改的页面;
抓取频率低的:往往是看起来不受欢迎或链接不多的页面。
如果抓取工具在抓取网站时有压力,它们通常会减慢速度甚至停止抓取,直至条件改善。页面被抓取后,它们会被渲染,然后送到索引。(索引就是储存搜索结果的列表)
爬虫指令
爬虫标记的是一个 HTML 片段,它告诉搜索引擎如何抓取或索引某个页面。它被放置在网页的 <head>部分,如下所示:
规范化:
当出现一个页面有多个版本时,Google 会选择其中一个存储在它们的索引中,这个过程叫规范化。
选择为规范的 URL 将是 Google 在搜索结果中显示的 URL,他们使用许多不同的信号来选择规范 URL,这些信号包括:
1、规范标签
2、重复页面
3、内部链接
4、跳转
5、网站地图 URL