看淘宝搜索技术博客上的一篇文章《定向抓取漫谈》,对通用网络爬虫进行了简单的定义,如下:
$ ]" `9 A+ T; h c / h( J. z% V/ R
抓取策略:那些网页是我们需要去下载的,那些是无需下载的,那些网页是我们优先下载的,定义清楚之后,能节省很多无谓的爬取。
0 s: Y2 Y) x- g5 n4 f% q( y : T6 P. e, {0 y. _- ]* \0 b9 U. Q
更新策略:监控列表页来发现新的页面;定期check页面是否过期等等。' Q3 e# \+ y; o9 n2 V
5 r& J/ v6 I+ B8 U7 m; C; c2 h5 A. f
抽取策略:我们应该如何的从网页中抽取我们想要的内容,不仅仅包含最终的目标内容,还有下一步要抓取的url。8 X3 y3 p& C9 s! ~' T% R7 j' s
# Z3 A1 x- y. s4 N* n* W
抓取频率:我们需要合理的去下载一个网站,却又不失效率。
6 Z! E$ i, x* S3 X8 s" Y1 y / D4 W! w8 ~/ q# U y
让我对“如何和网络爬虫对话”这个课题有了一些思考,下面归纳的主要用于迎合上面提到的爬虫“抓取策略”。
( g, A* o) ]# E1 B( Q ]
4 N1 B' h" O C! G# K% j 1、通过robots.txt和爬虫对话:搜索引擎发现一个新站,原则上第一个访问的就是robots.txt 文件,可以通过allow/disallow语法告诉搜索引擎那些文件目录可以被抓取和不可以被抓取。* i0 {8 ~% p* g
' T9 r1 j$ v, i" ]
关于robots.txt 的详细介绍:about /robots.txt+ b, n h8 e' ]
9 o0 V$ G- V' A8 |" [ 另外需要注意的是:allow/disallow 语法的顺序是有区别的% T i/ a% \1 C5 D+ a" N5 ?
( y" w* n9 | [+ O( y* L a% N
2、通过meta tag和爬虫对话:比如有的时候我们希望网站列表页不被搜索引擎收录但是又希望搜索引擎抓取,那么可以通过<meta name=“robots” content=“noindex,follow”> 告诉爬虫,其他常见的还有noarchive,nosnippet,noodp 等。% O t0 j& ]! T- ~2 [- P u- `4 a
7 i6 z! l9 ~% {- E
关于 meta tag 的更多介绍:Metadata Elements- M6 e# L; K) }& t
0 H, |. y1 s+ P
3、通过 rel=“nofollow” 和爬虫对话:关于 rel=“nofollow” 最近国平写了一篇文章《如何用好 nofollow》很值得一读,相信读完之后你会有很大的启发。8 |6 Y2 |; [% X6 Q
# |# b4 ~8 N2 r3 p' V- {+ K, [) x 4、通过 rel=“canonical” 和爬虫对话:关于 rel=“canonical” 谷歌网站站长工具帮助有很详细的介绍:深入了解 rel=”canonical”; a) U! s1 D+ l) |, w
1 J- ? C: w0 E 5、通过网站地图和爬虫对话:比较常见的是xml格式sitemap和html格式sitemap,xml 格式sitemap可以分割处理或者压缩压缩,另外,sitemap的地址可以写入到 robots.txt 文件。
6 _2 A4 k# Q4 f8 m! f" q( t $ l3 J7 G1 l1 S" m3 x7 g7 G
6、通过网站管理员工具和搜索引擎对话:我们接触最多的就是谷歌网站管理员工具,可以设定googlebot抓取的频率,屏蔽不想被抓取的链接,控制sitelinks等,另外,Bing和Yahoo也都有管理员工具,百度有一个百度站长平台,内测一年多了仍旧在内测,没有邀请码无法注册。
+ `% b# _9 S/ G) @0 V . F, D4 C- E4 i1 n8 t* x% I" u4 [
另外,这里面还衍生出一个概念,就是我一直比较重视的网站收录比,所谓网站收录比=网站在搜索引擎的收录数/网站真实数据量,网站收录比越高,说明搜索引擎对网站的抓取越顺利。
4 I5 Z) ]0 t1 k; ?0 U
: a) b' F; s1 W/ S" Y7 z7 x 暂时就想到这些,目的在于尝试性的探讨如何更有效的提高网站在搜索引擎的收录量。: |' }% d/ X2 A4 o8 P7 l
$ d# |2 [' j8 b 权当抛砖引玉,欢迎各位补充!2 M$ @8 w0 ]# F7 d" [2 i( o
! f2 E3 m7 H- T, i
备注:
: n- P3 E" n5 V8 M; S; Y
+ w# b7 y0 e4 P) |+ D 网络爬虫(web crawler)又称为网络蜘蛛(web spider)是一段计算机程序,它从互联网上按照一定的逻辑和算法抓取和下载互联网的网页,是搜索引擎的一个重要组成部分。. g- [! N" o6 m' y% ~& X$ r1 p
|