领取51CTO下载豆的Python脚本

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'tan9le'
import urllib2
import cookielib
import urllib
import random
import re
 
def freedown(username,passwd):
    header = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1'),('Referer','http://home.51cto.com/index.php?s=/Index/index/reback/http%253A%252F%252Fdown.51cto.com')]
    cj = cookielib.LWPCookieJar()
    cookie_suppot = urllib2.HTTPCookieProcessor(cj)
    opener = urllib2.build_opener(cookie_suppot,urllib2.HTTPHandler)
    opener.addheaders = header
    urllib2.install_opener(opener)
    postdata = {
        'email': username,
        'passwd': passwd,
        'reback':'http%3A%2F%2Fdown.51cto.com',
    }
    request = urllib2.Request("http://home.51cto.com/index.php?s=/Index/doLogin",urllib.urlencode(postdata))
    conn = opener.open(request)
    partner = re.compile(r'src="(.+?)"')
    match = partner.findall(conn.read())
    for item in match:
        #print item
        opener.open(item)
    url = 'http://down.51cto.com/download.php'
    data = {'do':'getfreecredits','t':random.random()}
    req = urllib2.Request(url,data)
    r = opener.open(req,urllib.urlencode(data))
    print r.read()
 
if __name__ == "__main__":
    freedown('用户名','密码')

获取当前的天气信息

第一步:
从这里获取所有的省份编码:http://www.weather.com.cn/data/city3jdata/china.html
第二步:
从这里获取该省份下所有的地市编码:http://www.weather.com.cn/data/city3jdata/provshi/【省份编码】.html
比如江苏省:http://www.weather.com.cn/data/city3jdata/provshi/10119.html
第三步:
从这里获取该市/地区的所有行政区划代码:http://www.weather.com.cn/data/city3jdata/station/【省份编码】【地市编码】.html
比如江苏省南京市:http://www.weather.com.cn/data/city3jdata/station/1011901.html
第四步:
从这里获取最终天气信息:http://m.weather.com.cn/data/【省份编码】【地市编码】【区域编码】.html
比如江苏省南京市市区:http://m.weather.com.cn/data/101190101.html
或者不想要纯数据的话,可以从这里获取页面信息:http://www.weather.com.cn/weather/【省份编码】【地市编码】【区域编码】.shtml
比如江苏省南京市市区:http://www.weather.com.cn/weather/101190101.shtml

附Python获取南京天气的代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
 
import urllib2
import json
 
# get weather html and parse to json
weatherHtml = urllib2.urlopen('http://m.weather.com.cn/data/101190101.html').read()
weatherJSON = json.JSONDecoder().decode(weatherHtml)
weatherInfo = weatherJSON['weatherinfo']
 
# print weather info
print '城市:\t', weatherInfo['city']
print '时间:\t', weatherInfo['date_y']
print '24小时天气:'
print '温度:\t', weatherInfo['temp1']
print '天气:\t', weatherInfo['weather1']
print '风速:\t', weatherInfo['wind1']
print '紫外线:\t', weatherInfo['index_uv']
print '穿衣指数:\t', weatherInfo['index_d']
print '48小时天气:'
print '温度:\t', weatherInfo['temp2']
print '天气:\t', weatherInfo['weather2']
print '风速:\t', weatherInfo['wind2']
print '紫外线:\t', weatherInfo['index48_uv']
print '穿衣指数:\t', weatherInfo['index48_d']
print '72小时天气:'
print '温度:\t', weatherInfo['temp3']
print '天气:\t', weatherInfo['weather3']
print '风速:\t', weatherInfo['wind3']

Mac OS X设置全局环境变量

执行命令:

sudo vi /etc/launchd.conf 

然后文件内的书写格式为:

setenv 变量名 变量值

举例:

setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

重启后生效,但是这个方法好像对GUI(*.app)程序不起作用,仅对CLI起作用
从网上还找到另外一个针对单个GUI程序的环境变量的修改方法,但是我没有验证是否正确,先给摘录过来备份:
还是以eclipse举例:

sudo vi eclipse.app/Contents/Info.plist

添加以下内容至根dict标签下:

    <key>LSEnvironment</key>  
    <dict>  
        <key>JAVA_TOOL_OPTIONS</key>  
        <string>-Dfile.encoding=UTF-8</string>  
        <key>LANG</key>  
        <string>zh_CN.UTF-8</string>  
           
    </dict>

整个文件看上去大概像这样:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
    <key>LSEnvironment</key>  
    <dict>  
        <key>JAVA_TOOL_OPTIONS</key>  
        <string>-Dfile.encoding=UTF-8</string>  
        <key>LANG</key>  
        <string>zh_CN.UTF-8</string>  
           
    </dict>

然后执行:

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/eclipse.app

使其生效,或者/Applications/eclipse改名后再次运行

OS X 10.9.x Mavericks 去除登录窗口中的 其他… 用户

运行【终端】,输入以下命令并回车,输入管理员密码验证后,可去除其他用户选择。

    sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE

运行【终端】,输入以下命令并回车,输入管理员密码验证后,可添加其他用户选择。

    sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool TRUE

Sublime Text中使用virtualenv

由于最近开始学习Python,不想把环境搞的乱七八糟,于是就在virtualenv环境中练习,操蛋的是sublime text貌似没有办法很好的支持使用virtualenv环境,摸索了很久,使用以下的Project配置文件可以使用virtualenv环境进行编译:

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "build_systems":
    [
        {
            "selector": "source.python",
            "env": {"PYTHONPATH":"./Scripts"},
            "path":"./Scripts;%PATH%",
            // For Mac OS X and Linux and Unix
            //"path":"/Users/user/work/myvirtualenv/bin:$PATH",
            "name": "Run virtualenv python",
            "cmd": ["python.exe", "-u", "$file"],
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
            "variants":
            [
                {   "name": "Run all Tests",
                    "working_dir": "D:/test/testenv",
                    "cmd": ["nosetests"]
                }
            ]
        }
    ]
}

由于我的project里直接添加了virtualenv的目录,所以上述env:PYTHONPATH和path中就使用了.这个相对路径,这里也可以写绝对路径

附:在.sublime-build 中包括的构建系统变量:

$file_path 当前文件所在路径, 比如 C:Files.
$file 当前文件的完整路径, 比如 C:FilesChapter1.txt.

$file_name 当前文件的文件名, 比如 Chapter1.txt.
$file_extension 当前文件的扩展名, 比如 txt.
$file_base_name 当前文件仅包含文件名的部分, 比如 Document.
$packages Packages 文件夹的完整路径.
$project 当前项目文件的完整路径.
$project_path 当前项目文件的路径.
$project_name 当前项目文件的名称.
$project_extension 当前项目文件的扩展部分.
$project_base_name 当前项目仅包括名的部分.

引用地址:http://sublime-text.readthedocs.org/en/latest/reference/build_systems.html