搜索技术入门到精通

Wednesday, January 10, 2007

第二章 爬虫 Spider

简单地说,爬虫负责按照url列表爬取网页的内容,实际中需要针对不同的协议设计爬虫程序并优化。写一个优秀的爬虫不是件容易的事情,仅列举部分设计必须考虑到的问题。
1.严格按照robots.txt 来爬取内容,优先按照sitemap来抓取。
2.控制抓取的深度,量力而行。这个和人吃饭一次吃多少的道理是一样的。
3.网络上动态网页数量巨大,而爬虫一般是多线程的,如果爬虫对一个domain爬取的频率过高可能导致服务器无法相应;如何克服,如何让爬虫相对比较智能地平衡网络负载,运算负载,存储负载?
4.不要试图去解析页面中的脚本代码,可能是恶意的程序,也可能是有bug的代码,在本地运行会将计算的消耗提升到不可预期的程度。
5.如何节约带宽,需要检测到网页的更新,请求head信息以获取更新状态。
6.如何把计算网页权重结合到爬虫程序中?因为爬取的过程中还是相当的cpu资源没有被占用,IO和网络是爬虫效率的最大瓶颈。在连接结构还存储在内存中的时候就完成一部分的权值计算能提升爬虫机器的运行效率。

No comments: