Archive for November, 2009

升级顺利

November 4th, 2009

很快:

  • 备份整个数据库
  • 下载最新版,2.8.5
  • 上传一个/index.html,发个升级期间的公告。(多此一举了,我blog没人看的 >_<)
  • 解压上传,覆盖掉原来的文件和目录。要注意看看升级文件里面的/wp-content/没有包含邪恶的东西。
  • 访问/wp-admin/upgrade.php,按提示升级一下数据库。
  • 好了,真正动手干活的时间不到5分钟。前端看起来一切没变,模板兼容性好。
  • 后台的确好用的多,在产品设计上下了苦工的。

准备升级wordpress到2.8.5

November 4th, 2009

趁小爬虫还在执行任务的间隙,升级一下,预计半个小时以内。

我是一只小爬虫

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这个称谓)

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

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

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

解决phpMyAdmin的完整显示视图

November 2nd, 2009

更新一篇吧,不谈风月,也不谈国事。

不知何时开始,PMA默认不显示以binary存放的数据。而我定义char/varchar/text等类型的时候,又喜欢用utf8_bin。结果只有int和date/time类型的数据会显示,其他都提示作 “[BINARY/BLOB - xx字节]”,那个郁闷啊,老手动的选options,翻翻sf上pma的issue,有个patch,但打上去后发现不可用,半年有多了,可能已经落后。

自己动手。F12呼出神器firebug,看到POST到sql.php去的相关数据有display_text,display_binary , display_blob三项,然后找到关键代码文件 /librarier/display_tbl.lib.php,发现可以通过session获取优先设置,完全可以无视这三项传进来的参数。

好吧,我就不管你三七二十一了,直接加上三行:

$_SESSION['userconf']['display_text'] = ‘F’;
$_SESSION['userconf']['display_binary'] = ‘ON’;
$_SESSION['userconf']['display_blob'] = ‘ON’;

全好了。