曾经有朋友问我怎么才能判断一个SEOer是不是高手。我就出了一个主意,就建议他问那个SEOer是不是知道Lynx在SEO上的应用方法。这么来提问,其实能从一个侧面反映这个SEOer对SEO研究有多深的。
现在SEO行业,虽然有很多以讹传讹的言论,但是如果自己经常实践,还是能找到很多真正有用的操作方法。实践久了,也能判断谁的说法正确,谁的说法有问题,这样的SEOER,可以放心的让他去操作一些比较重要的网站了。再进一步的给网站各个细节优化过程中,就会发现很多以前别人没有谈到过,也很难在优化一些小网站的过程中注意到的细节。这些细节,在别的地方很难找到相关的参考资料,或者根本就找不到。但是在google的《google网站质量指南》、《google黑板报》、《google中文网站管理员博客》,基本上都可以找到关于这些细节的只言片语的。只不过那里面也只是给出了一个方向,更具体的细节还是要靠你自己再去实践。
在《google网站质量指南》 的第一页 ,就已经建议大家去用Lynx这个工具区检测你的网站:
使用诸如 Lynx 的文本浏览器来检查您的网站,因为大多数搜索引擎信息采集软件查看您网站的方式与 Lynx 几乎一样。如果诸如 Javascript、Cookie、会话 ID、框架、DHTML 或 Flash 等复杂功能造成您无法在文本浏览器中看到整个网站,则搜索引擎信息采集软件在抓取您的网站时可能会遇到问题。
这里提到了“Lynx查看网站的方式和搜索引擎几乎一样的”。一个SEOer,如果真的到了很多细节都无法从别人那里获取参考的程度,那这段话相信他很难忽视掉的。
我用了一段时间的Lynx,发现这个曾经的文本浏览器和搜索引擎爬虫很像的。你所听过的爬虫特性,在这里面都能找到一点影子。
比如检测隐藏链接,我们只知道搜索引擎是不喜欢的,但是具体的检测方法是怎么样的呢? 如果你用熟了Lynx,就发现一个非常简单的命令就搞定了。
首先要搭建一个Lynx的运行环境。Lynx不能用那种编译过的在windows下运行的版本,有很多功能是不能用的。建议在XP下装一个虚拟机,然后在虚拟机里装一个linux系统来运行Lynx。
虚拟机软件用 VirtualBox 或者 VMWare,具体的安装方法大家google之。 Linux系统推荐用Ubuntu,它可以在图形界面上安装lynx。
在装了Lynx的Linux系统的命令模式下输入:lynx -dump www.alibaba.com 并回车,这个页面上的隐藏链接就一览无余了。如:
检测出了隐藏链接
然后再进一步的分析一下,是哪些链接Lynx会认为是隐藏链接呢?
可以看到,至少以下的一种链接是会被Lynx认为是隐藏链接的。代码为:
<a href=”http://www.alibaba.com”> </a>
这个链接,即没有文字作为锚文本,也没有图片或其他作为链接的对象。如果不去加载CSS文件或JS文件,光就这个代码,在网页上是看不到这个链接的存在的。当然这就是隐藏链接,毫无争议的。
这是Lynx认为的情况,搜索引擎也是一样的。从整个互联网来看,这种检测方法在99%的情况下都不会冤枉一个网站的。对于google来说,一个检测方法,如果能有40%以上的反作弊效率,那是非常好的一个方法。
一个非作弊的网站,产生这种情况的原因,是因为网页设计人员的一些“奇怪”的代码写法。如果你去检测你的网站,说不定也能看到这些隐藏链接。
当然,Lynx的作用不止这个。它首先是能以一个可视化的角度来展现爬虫看到了什么内容。用它可以挨个检查你的网页给搜索引擎爬虫展现了怎么样的内容。如:
Lynx看到的内容
然后才是其他的一些功能:
可以检测网页代码的完整性。如果提示有“Bad HTML”就要注意一下。
可以和IE一样查看源文件。 命令在附录中。
对cookie的跟踪是特别对待的。会提示你是不是跟踪cookie。
对框架和表单的处理和爬虫是一样的。
URL太多参数,会造成浏览困难。
可以查看网页返回的http头信息
……
你会看到很多似曾相识的东西。
Lynx 的出现时期,恰好是第一个爬虫程序诞生的时候。有相当大的理由相信他们的是一样的理念。而且现在维护和更新Lynx的人员,有些也在维护其他开源的爬虫程序。你其实也可以把Lynx看成一个可视化的爬虫。
HTTrack 是一个比较宏观的爬虫模拟器。而Lynx就更细节一些,也更实用一点。
附录 Lynx的简要使用说明:
以下为引用的内容:
移动命令:
下方向键:页面上的下一个链接(用高亮度显示)。
上方向键:页面上的前一个链接(用高亮度显示)。
回车和右方向键:
跳转到链接指向的地址。
左方向键:回到上一个页面。
滚动命令:
+,Page-Down,Space,Ctrl+f:
向下翻页。
-,Page-Up,b,Ctrl+b:
向上翻页。
Ctrl+a: 移动到当前页的最前面。
Ctrl+e: 移动到当前页的最后面。
Ctrl+n: 向下翻两行。
Ctrl+p: 往回翻两行。
): 向下翻半页。
(: 往回翻半页。
#: 回到当前页的 Toolbar 或 Banner。
文件操作命令:
c: 建立一个新文件。
d: 下载选中的文件。
E: 编辑选中的文件。
f: 为当前文件显示一个选项菜单。
m: 修改选中文件的名字或位置。
r: 删除选中的文件。
t: Tag highlighted file。
u: 上载一个文件到当前目录。
其他命令:
?,h: 帮助。
a: 把当前链接加入到一个书签文件里。
c: 向页面的拥有者发送意见或建议。
d: 下载当前链接。
e: 编辑当前文件。
g: 跳转到一个用户指定的URL或文件。
G: 编辑当前页的URL,并跳转到这个URL。
i: 显示文档索引。
j: 执行预先定义的“短”命令。
k: 显示键盘命令列表。
l: 列出当前页上所有链接的地址。
m: 回到首页。
o: 设置选项。
p: 把当前页输出到文件,e-mail,打印机或其他地方。
q: 退出。
/: 在当前页内查找字符串。
s: 在外部搜索输入的字符串。
n: 搜索下一个。
v: 查看一个书签文件。
V: 跳转到访问过的地址。
x: 不使用缓存。
z: 停止当前传输。
[backspace]:
跳转到历史页(同 V 命令)。
=: 显示当前页的信息。
: 查看当前页的源代码。
!: 回到shell提示符下。
_: 清除当前任务的所有授权信息。
*: 图形链接模式的切换开关。
@: 8位传输模式或CJK模式的切换开关。
[: pseudo_inlines 模式的切换开关。
]: 为当前页或当前链接发送一个“HEAD”请求。
Ctrl+r: 重新装如当前页并且刷新屏幕。
Ctrl+w: 刷新屏幕。
Ctrl+u: 删除输入的行。
Ctrl+g: 取消输入或者传送。
Ctrl+t: 跟踪模式的切换开关。
;: 看 Lynx 对当前任务的跟踪记录。
Ctrl+k: 调用 Cookie Jar 页。
数字键: 到后面的第 n 个链接。