在App Engine中访问外部网站
下午做RSS聚合网站时,需要从外部的地址抓feed,用的是feedparse的库。但是怎么弄都出错,所以很郁闷,想从RSS的字符串解析一次,看看有没有错。想
当然的使用了urllib,结果它也出错。由于有了昨天模板的经验,所以直接去找google的文档。果不其然,它不支持直接从外网获取内容,如果有此需求,则需要使
用它封装好的一个urlfetch库中的fecth方法。没办法啊,那就用吧,谁让人家的地盘人家做主呢。
抓取内容,判定返回值是否为200,取结果,到这一切顺利,于是就开始用feedparse解析。解析也没问题,但是郁闷的是,这样解析出来的东西没有时间信息了,就
是它得不到这个RSS的最后更新时间,去urlfetch的文档里面转了一圈,也没见有相关的内容,只好自己另想办法了。最后的解决办法是在FeedInfo中加入了
一个字段用以存放最后更新的时间,然后拿feed中的每个文章的updated_parse时间与这个时间比较,如果文章的时间较新则插入库中,否则不处理。在写时候
漏掉一条语句,调了好长时间,真郁闷。
PS:logging真的很好用,直接在服务器的终端窗口输出信息。其实我本来是想用printf的,结果伊居然不支持,FT。
PS2:如果loggin的消息调成debug,则在开服务器的时候需要加上-
d选项,否则DEBUG的信息不输出,我为这折腾了10分钟,那几条logging语句一会加上一会删除,心里还直嘀咕,难道又被我找到个BUG…….