0-家人
0-新酷应用
startups
友情链接
同事
日历
-
最近文章
搜索
近期评论
- suchasplus 在 跟面试、职场相关的杂七杂八的 上的评论
- 123 在 关于一米六二其人 上的评论
- Think In LAMP Blog » Blog Archive » PHP每月通讯(2010年9月) 在 PHP中的一些language construct 上的评论
- Think In LAMP Blog » Blog Archive » PHP每月通讯(2010年9月) 在 稍显寒酸的一个PHP框架:supermin 上的评论
- Tokyo Cabinet乱贴(未整理,仅供自己做笔记) « LAMP架构网站开发指南|Kenneth@Beijing2010 在 Tokyo Cabinet:另一个DBM实现 上的评论
- Anders 在 cloudapi 悄然上线,欢迎各方人士拍砖 上的评论
- key 在 新博开张 上的评论
- 怎么样 在 新博开张 上的评论
- timberland boots uk 在 新博开张 上的评论
- 小宝 在 稍显寒酸的一个PHP框架:supermin 上的评论
标签归档:python
python多线程程序的中断(信号)处理
python程序很容易进行多线程处理,也很好进行signal的处理。但是,在多线程程序中进行信号处理,却不太好搞。我琢磨出了一个可行的办法。 看第一个程序:singlethread.py #!/usr/bin/python #coding:utf-8 import signal,os,sys,threading,time import wk def sig_exit(): print “[end time]:”+str(time.time()) print “exited.” sys.exit() def handler(signum, frame): print “got an signal”,signum,frame if signum == 3: sig_exit() if signum == 2: sig_exit() if signum == 9: sig_exit() return None … 继续阅读
PHP注释查看器
今天用着pydoc用的特爽,特希望能够找到一个php下的查看注释的工具。php生成文档倒是有一个phpdocument,另外还有一个给c/c++生成文档的doxygen也能用来给php生成文档。可是就是都太麻烦。于是我的用py写了一个查看php的注释的,能够逐行读入php代码,区分用/*来给出的注释。目前只能查看phpdocument方式的注释,另外,类里面的函数不能正确给出类名。不过在很多情况下够用了。关键是小巧。 请在http://xurenlu.googlecode.com/files/phpcomment.py 这里下载。使用很简单。用 phpcomment.py < phpfile 或 phpcomment.py phpfile即可。 本文由蝌蚪安尼友情赞助.
hyer开发笔记之:最大页面数的获取
搞垂直搜索(好吧,我承认我说得有点太高雅:搞网页采集)时,一般分这样两步: 搞到列表页,读出所有待抓取的内容页面。 挨个读取内容页面,解析出需要的信息,比如做购特搜索时需要采集商品名称,价格,描述,商品图片等 现在首先要解决的搞到列表页。拿到列表页时,有的同志很认真,就顺着那个下一页又一次地地抓取所有列表页面。其实不是特别必要。比如,bj.58.com的租房信息列表页,分了10000多页,光遍历这些列表页就需要好久。 hyer的处理方式是,把取到列表面的最大页面数做为一个任务,单独拿出来由一个专有模块去执行。逻辑是这样的: 首页你需要人工分析出列表面的URL的特征。58的那个很简单,一下子就能出来: <coolcode> http://bj.58.com/zufang/pn%d/ </coolcode> %d是分页数。 其次我们要找的时,找出一个字串,在页面数过大(就是一直翻下一页,发现没有下一页可以翻的那个识别串)。这里58的页面估计是用.net的控件拖的,所以就是访问一个不存在的分页,比如第10万页,他也有下一页的链的妆可以翻。这时我们取的是列表项里的一个字符串: <coolcode> “onmouseout=”this.style.background=’#F7F9FE” </coolcode> [顺便说一下,58的前端设计同学,这样写javascript不太好呀。]. 接下来,我们需要一页页地翻。(您要有疑问了,咦,说白了您也还是一页页地翻啊!) NO! 我们是用二分法的思维来试!首先我们一次跳2048页,从第一页,依次试了1,2048,4097等页. <coolcode> page: 1 is not max page page: 2049 is not max page page: 4097 is not max page page: 6145 is … 继续阅读
hyer开发笔记之:HTMLParser不支持中文问题
在开发hyer的过程中,我发现beautifulsoup解析中文网页总是有问题。于是乎,我决定用tidy来在beautifulsoup之前做一个fix.没想到tidy的python极其不雅,首先tidy的强大在python版的uTidylib也完全感觉不到了,而且安装的时候时候还有错误。 等tidy问题终于修正之后,发现大量的网页已经能用美味的汤[beautifulsoup]来解决了,但是仍然有一部分网页 不行。 最终经过跟踪发现是在这里:(/usr/lib/python2.6/HTMLParser.py): <coolcode> attrfind = re.compile( r’\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*’ r’(\’[^\']*\’|”[^"]*”|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]*))?’) </coolcode> 正则表达式的第二行在遇到形如 <coolcode> alt=我是中国人 height=60 src=’images/go.gif’> </coolcode> 这样内容为中文不加引号的属性时无法处理。于是稍做修改(我是个大老粗,改得很偷懒,但是好像很管用) <coolcode> attrfind = re.compile( r’\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*’ r’(\’[^\']*\’|”[^"]*”|[^\s^\'^\"]*))?’) </coolcode> 就能解析中文属性了。 本文由蝌蚪安尼友情赞助.
tokyodystopia的python封装
下载地址:http://xurenlu.googlecode.com/files/pydyst.tar.gz 刚刚学习python的c/c++扩展,练练手。后来写完了,才发现原来还有一个叫ctypes的模块,用这个封装起来会更轻松。 关于tokyo dystopia,我在这里介绍过。 大数据量的应用场景,请慎用tokyo dystopia。 本文由蝌蚪安尼友情赞助.
beautiful Soup in Python
“美味的汤”是一个python的HTML/XML解板器,主要特性是: 1.美味的汤在你给出的标记不正确时不会阻赛。它尽可能地处理地和原文档近似。这样通常足够你收集信息。 2.美味的汤提供了少量几个方法(但却是python味道十足的方法)以足够你浏览,搜索,修改一棵解析树:一个能拼接出或是解析出你所要的的工具。你不需要为每个应用创建一个定制的解析器。 3.美味的汤能够自动将任何格式的输入换成Unicode,并在输出时转成UTF-8.除非文档没有指定编码而美味的汤又不能自动探测到这个编码。遇到这种情况你只需要指定原始编码就行了。 美味的汤解析你所给的任何东西,并且为你做遍历工作。你可以告诉它,”去找到所有链接”,或“找到所有带有一个叫externalLink的class的链接,或是”找到链接地址是foo.com的链接,或“找到表头是加粗文本的表格,并把这个文本返回给我”. 现在你可以处理那样设计很糟糕的网站的数据了。过去需要半天的工作现在有了美味的汤只需要几分钟了. 原始文档地址: http://www.crummy.com/software/BeautifulSoup/documentation.html 本文由蝌蚪安尼友情赞助.
我创建了一个开源项目
继前面创建的项目一个个悄无声息以后,我又创建了一个开源项目hyer: http://code.google.com/p/hyer/ 这是一个python写就的spider,目前很小,只有几K,但是已经可以支持robots.txt协议和cookies,并且加入了事件机制,因为可以方便地为这个项目开发插件。有了插件的支持,这个spider就可以用来做各种各样的事情,用在各种目的上。 举些例子: A.在网页设计师做好静态网页时,往往将链接设为”#”.在php程序员套程序时,经常有一些链接会忘了修改过来,留下很多置为”#”的坏链接。hyer在解析网页是遇到链接时,会产生一个new_original_url的事件,如果您的插件,设定在这个事件中检查新链接是否为”#”,如果是“#”就输出一个提示和当前页面的地址。这样这个插件就可以帮我们检查整个站点的程序套完了没有,有没有链接没有修改。 B.同上,在某个链接无法访问是,也有一个事件:url_fetch_error被激发。如果我们的插件设定此时输入URL地址,就可以做成一个死链检查工具。 … 有兴趣的同学可以一起做。我建了一个讨论组: http://groups.google.com/group/hyer-spider 本文由蝌蚪安尼友情赞助.