Posts Tagged ‘python’

我是一只小爬虫

November 2nd, 2009

不是我,是它。刚刚放出了一只小爬虫,完成了任务。它爬了4,411个页面,有5个因为http连接超时而不成功,都是外国的站点,这个比较正常。算下来成功率很高的了。

看了一下log,不同站点响应速度有差别,总体来说,每个页面抓取时间平均约为2秒钟;接着分析页面平均花了0.7秒,比较欣喜,在这些小规模应用上,BeautifulSoup 的效能完全令人满意的;然后其余的数据库操作大概用了半秒钟。

总体来说,一个页面抓取和分析和数据存储任务大概就要3.2秒。

再进一步总结:

  • python是很适合做这类光荣的小爬虫任务的。
  • BeautifulSoup 真的很方便,我一口气写了30多个站点的抓取规则,一开始一边写一边祈祷这日子赶快结束,写到后来发现还是觉得不算无趣的。那种你看一眼html代码就知道应该如何写并且一下手就准确无误的感觉是很爽的。要知道有些网站的html写的很变态,上个世纪的html风格都有。
  • GAE好多限制,不得不将代码重构了一遍,迁移到纯粹的python环境下。关键是好多个数据表,他们之间关系复杂,用关系数据库(比如Mysql)最好。GAE上好不容易处理,都快把我弄疯掉了,比如那个在SQL里面很容易处理的PK/AI啊,GAE得自己写个function去保证唯一并自增,真是很傻的
  • 小型的web应用,还是PHP最方便。信手拈来,想怎么搞就这么搞,写PHP代码都不用构思的,心里想着目标和路径,一气呵成,连debug都省了。

爬虫,就是crawler。比较恶心蜘蛛,还是称之为爬虫好,当然,更温情的是叫机器人。

PS,百度最恶心了,它家的爬虫叫baiduspider,

google的最好,所以他叫googlebot

yahoo的最恐怖,叫yahoo slurp(吸血鬼啊!?)

bing的想向google大神发起冲击,所以也叫bot,bing MSNBot (呃,不过貌似在破烂的msn search年代就用bot这个称谓)

—————————华丽之分割线———————————–

不知不觉已经凌晨了,外面有人在吵架,上海人平常说话就像吵架,吵架的时候就像拆楼。不过我一定睡的着,你就继续吵吧~

并且呢,上海人吵闹似乎都乐于摆出来给大家观瞻的,例如那个叫新老娘舅的节目