心随所致,梦想为开。Follow the Dreams & Heart.
Archive for April, 2009
失去了才知道可惜
Apr 15th
1989.4.15
胡耀邦同志是久經考驗的忠誠的共產主義戰士,偉大的無產階級革命家、政治家,我軍傑出的政治工作者,長期擔任黨的重要領導職務的卓越領導人。
—-中共中央发布的訃告
带三块表的河蟹-农奴制继续深入-向北朝鲜靠拢
Apr 13th
什么不知道就是最好、最稳定、最和谐的。
就像北朝鲜,卫星掉到了海里,但是要对大家说,卫星入轨,在播放着伟大的《金正日将军之歌》,于是举国欢腾,充满了强烈的民族自豪感。
美国地震局关于某地震的页面被ban了,甚好。
http://earthquake.usgs.gov/eqcenter/recenteqsww/Maps/10/105_30.php
Python中获取Javascript渲染后的HTML源码
Apr 9th
Get Rendered HTML Source In Python
前因:
现在的网页越来越动态和漂亮,大量地用到了Javascript,包括但是不限于Ajax,这样一来直接查看网页源代码的话的,获取到的并不是真正的渲染完成后的页面。这对采集来说,是一个很大的挑战。
在火车头当中,对于Ajax获取的数据的话,可以手动分析页面提取的Ajax的处理url,然后来提取。但是对于复杂的session验证(特别是.NET的网站来说)处理比较困难。
另外一方面,对于javascript生成的页面,火车头也没法直接提取。
思路:
首先明确的是必须获取Javascript渲染结束后的结果。这一点是明确的,具体就是方法就因人而异。
而自己解决Javascript渲染无异于痴人说梦,所以必须借助现有的浏览器核心,比如Gecko、WebKit、IE。如果用Java开发的话可以Jrec这个库,它封装了Gecko。如果其他的语言,而且是在windows平台上的话,最简单的就是用——
COM,用Internet Explorer 提供的com组件。
解决方案:
突破了这层关系,下面的就水到渠成了。
在python下,对IE封装的比较完善而且文档齐全的就是PAMIE(http://sourceforge.net/projects/pamie),它的本意是作为自动化测试工具使用的。
需要注意的是,在页面加载完之后需要留出一定时间来让页面的js代码执行渲染完成后再提取html代码。这个时间需要通过试验确定。
需要注意的是: 前面所述的利用PAMIE来获取渲染后的html内容的方法是可行的,但是缺点是效率非常低。对于最常见的ajax动态内容页面来说,最直接的方法还是构造ajax请求,来获取相应内容。这样效率很高,而且返回数据都是结构化的xml或者json数据,比html更容易处理。
近况以及读书《小强升职记》
Apr 3rd
最近主要忙了几件事情:学习了abaqus,用midas做了一个计算,帮忙做完了一件事,读了一本关于GTD的书。
之前也曾经多次尝试GTD,也读完Get Things Done的中文版和英文原版,研究了GTD的流程图。但是最终还是常见的“读的时候热血沸腾,然后销声匿迹”。最近忙的几件事情,终于体会到了第二象限的工作转为第一象限时候的被动和郁闷。
书名叫《小强升职记》,很久前在GTDLIFE.CN上就看过介绍。和一般的励志类图书中的忽悠不同,书中用一个生动的故事讲解了GTD中的抽象方法和原理,非常好。所有的建议和过程都非常具有操作性。
书中以“你真的很忙吗?”作为故事的开头,恰中了我的感觉。于是在一拿到书之后就读完,然后又慢慢地读第二遍。这种读书的投入程度很少见了,记得上一次是在读“Head First Design Patterns”的时候。
推荐平时总觉得很忙而又没有头绪的朋友读一下,原价32元,当当折扣价18.7,超值。
当当地址:http://product.dangdang.com/product.aspx?product_id=20505302
学习Midas,做了一个计算
Apr 2nd
某大厦单锁玻璃幕墙结构,包括采光顶与雨棚。
主要考虑自重、风、地震荷载,对于不同部位分别按照《玻璃幕墙工程技术规范》和《建筑抗震设计规范》。
单层索网幕墙体系具有通透性好、轻盈美观、环保节能和施工灵活等特点,但由于柔性支承本身的设计不同于其他结构,钢索施加预张力,才能抵抗幕墙风荷载与自重。
本工程两栋楼为独立的体系,索网必须固定在能独自承受的框架结构上,采用框架一侧与主体结构能够水平滑动,达到两栋主体结构之间变形不受相互影响的目的。
采用Midas 7.0.3计算,有图有真相。