Category: Just about Code

  • 用Nginx反向代理Feedburner

    虽然博客将死,RSS将死的言论越来越盛,但如果真的要代理Feed,除了Feedburner可能没有更好的选择了,Feedsky什么的各种不靠谱。至于要反向代理Feedburner的原因我就不说了,老舍先生的茶馆里已经说的很清楚了。 实现的主要问题是:个人的Feedburner页面和页面中其他元素的目录结构不同。 如,我的Feedburner页面地址是http://feeds.feedburner.com/huxuan, 而其他如定义xml结构的xsl文件地址是http://feeds.feedburner.com/~d/styles/rss2full.xsl。 所以不能简单的反向代理个人页面,更不能直接反向代理feedburner根目录。 折腾纠结了两天,经过向 lqs 和 wkl 两位大牛请教,得到了两条不同的思路。 思路一:根目录反向代理http://feeds.feedburner.com,并仅将根目录重定向至/huxuan。 需要注意只重定向根目录,不重定向根目录下的文件和子目录,不然会无法访问其他文件的错误,配置代码如下: [shell] server { listen 80; server_name feeds.huxuan.org; access_log /home/huxuan/.log/www/feeds.huxuan.org.access.log; error_log /home/huxuan/.log/www/feeds.huxuan.org.error.log; location / { proxy_pass http://feeds.feedburner.com; proxy_set_header Host feeds.feedburner.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; rewrite ^/$ /huxuan break; } } [/shell] 思路二:仅根目录反向代理http://feeds.feedburner.com/huxuan,其他非根目录(根目录下的文件和子目录)都用正则匹配反向代理至http://feeds.feedburner.com [shell] server { listen 80; server_name feeds.huxuan.org; access_log /home/huxuan/.log/www/feeds.huxuan.org.access.log; error_log…

  • 虾米自动签到的python脚本

    这个页面已经不再维护更新了,你可以从这里了解最新的进展 一个练手的小脚本,暂时只是实现了签到,还没有很完备的错误处理,而且在实现“全自动签到”上还没有想出什么合理的方案,先把代码贴上现丑了…… 使用方法很简单 [bash] python xiami_auto_checkin.py email password [/bash] 即把用户名(email)和密码作为参数传进去即可 如果你只是签固定的一个帐号,也可以直接将代码中的读参数改成赋值 这个代码只是最初的版本,你可以在这里看到最新的进展 [python] #!/usr/bin/python # encoding:utf-8 import re import sys import urllib import urllib2 import cookielib def check(response): “”” docstring for check “”” pattern = re.compile(r’ (已连续签到\d+天) ‘) result = pattern.search(response) if result: return result.group(1) return False pass def main(): “”” docstring for main “””…

  • 用Python处理xml文件中的非法字符

    用xml.dom.minidom.parse()解析xml文件时遇到非法字符直接报错的问题 最后的方案是把纯文本方式读入文件,然后用字符串来处理 可以得到将非法字符全部剔除的结果 [python] #!/usr/bin/python # -*- coding:utf-8 -*- import string import xml.dom.minidom def parse_xml(file_path): “”” Handle xml file with invalid character [input] : path of the xml file [output] : xml.dom.minidom.Document instance “”” try: xmldoc = xml.dom.minidom.parse(file_path) except: f = file(file_path) s = f.read() f.close() ss = s.translate(None, string.printable) s = s.translate(None, ss) xmldoc…