ÎÄÕÂÁбí
 
2009Äê05ÔÂ17ÈÕ ÐÇÆÚÈÕ 12:46
//ÈýάÁ¢Ìå»­µÄ¹Ø¼ü´úÂë
//ÎÄÕ²μû£ºhttp://www.cnblogs.com/realfun/archive/2005/07/21/197219.html
//ÊÇÎÒÒÔǰдµÄ´úÂ룬ÏÂÃæÕâ¸öÊǸüйýµÄ°æ±¾

class StereoImageBuilder
{
    private static readonly int RESULT_WIDTH = 800;
    private static readonly int NO_BIT = -1;
    private static readonly int RESULT_HEIGHT = 600;
    private static readonly int BACK_WIDTH = 100;
    private static readonly int EYE_SPACE = 128;

    public static Image Build(Image front, Image back, byte depthCount)
    {
        if (front == null || back == null) return null;

        Bitmap bmpBack = ResizeBitmap(back, BACK_WIDTH, RESULT_HEIGHT);
        Bitmap bmpFront = ResizeBitmap(front, RESULT_WIDTH, RESULT_HEIGHT);
        Bitmap bmpResult = new Bitmap(RESULT_WIDTH, RESULT_HEIGHT);
        byte[][] depthVector = new byte[RESULT_HEIGHT][];
        for (int i=0; i<RESULT_HEIGHT; i++)
        {
            depthVector[i] = new byte[RESULT_WIDTH];
        }
        CalcDepthVector(depthVector, bmpFront, depthCount);
        StereoBit[] bits= new StereoBit[RESULT_WIDTH];
        for (int i=0; i<RESULT_HEIGHT; i++)
        {
            CalcEqualColorLine(depthVector[i], bits, depthCount);
            ColorUpResult(bits, bmpResult, bmpBack, i);
        }
        return Image.FromHbitmap(bmpResult.GetHbitmap());
    }

    private static Bitmap ResizeBitmap(Image image, int width, int height)
    {
        return new Bitmap(image, width, height);
    }

    private static void CalcDepthVector(byte[][] depthVector, Bitmap bmpFront, byte depthCount)
    {
        for (int i=0; i<RESULT_HEIGHT; i++)
        {
            for (int j=0; j<RESULT_WIDTH; j++)
            {
                //depthVector[i][j] = (byte)(CalcGray(bmpFront.GetPixel(j, i)) * depthCount / 255);
                depthVector[i][j] = (byte)(CalcGray(bmpFront.GetPixel(j, i)) * depthCount / 255);
            }
        }
    }

    private static void CalcEqualColorLine(byte[] depthVector, StereoBit[] bits, byte depthCount)
    {
        for (int i=0; i<bits.Length; i++)
        {
            bits[i].prev = NO_BIT;
            bits[i].next = NO_BIT;
            if (i + BACK_WIDTH < bits.Length)
                bits[i].next = i + BACK_WIDTH;
            if (i - BACK_WIDTH >= 0)
                bits[i].prev = i - BACK_WIDTH;
        }

        for (int layer=0; layer<depthCount; layer++)
        {
            for (int x=0; x<RESULT_WIDTH; x++)
            {
                int left_x = x - EYE_SPACE/2 + layer/2;
                int right_x = x + EYE_SPACE/2 - (layer+1)/2;
                //fill in if it's the proper layer
                if(depthVector[x]==layer && left_x>=0 && right_x<RESULT_WIDTH)
                {
                    //@@@@why let it be NO_BIT?
                    if (bits[left_x].next != NO_BIT) bits[bits[left_x].next].prev = NO_BIT;
                    bits[left_x].next = right_x;
                    if (bits[right_x].prev != NO_BIT) bits[bits[right_x].prev].next = NO_BIT;
                    bits[right_x].prev = left_x;
                }
            }
        }
    }

    private static void ColorUpResult(StereoBit[] bits, Bitmap bmpResult, Bitmap bmpBack, int y)
    {
        for (int x=0; x<RESULT_WIDTH; x++)
        {
            if(bits[x].prev == NO_BIT)
            {
                bmpResult.SetPixel(x, y, bmpBack.GetPixel(x % BACK_WIDTH, y));
                int temp = x;
                while( bits[temp].next != NO_BIT)
                {
                    temp = bits[temp].next;
                    bmpResult.SetPixel(temp, y, bmpBack.GetPixel(x % BACK_WIDTH, y));
                }
            }
        }
    }

    private static byte CalcGray(Color c)
    {
        return (byte)(0.299 * c.R + 0.587 * c.G + 0.114 * c.B);
    }
}
 
2008Äê11ÔÂ17ÈÕ ÐÇÆÚÒ» 16:32
 
2008Äê09ÔÂ04ÈÕ ÐÇÆÚËÄ 15:52

ÔÚÏß»ªÈݵÀ - ÓÎÏ··¢Ñ¿Íø

ÓÎÏ·ÌØµã£º
* ½çÃæ¹ÅÆÓµäÑÅ
* 50¶àÖÖ¿ª¾Ö£¨ºáµ¶Á¢Âí¡¢ÊØ¿ÚÈçÆ¿¡¢²ã²ãÉè·ÀµÈ¡­)
* ²Ù×÷¼òµ¥¡¢¿É»ØÍË
* ¹ý¹Ø½á¹û¿É¶¯Ì¬»Ø·Å

×î´óµÄÓŵã¾ÍÊÇ×îºóÒ»Ìõ£¬¹ý¹Ø½á¹û¿É»Ø·Å£¬ºÇºÇ¡£
Ò»°ãÌÖÂÛ»ªÈݵÀÓÎÏ·µÄʱºò´ó¼ÒÃèÊö·½·¨²»Í¨£¬½á¹ûºÜ»ìÂÒ£¬µ«ÊÇÈç¹ûÄܹ»¿´µ½Õû¸ö½âÌâ¹ý³Ì¾Í²»»áÓÐÕâ¸öÎÊÌâÁË¡£
Äã¿ÉÒÔµ½´ò¿ªÏÂÃæÁ½¸ö½á¹ûÊÔÊÔ¿´£º
ºáµ¶Á¢Âí81²½½â·¨
СÑà³ö³²137²½½â·¨

»ªÈݵÀÓÎÏ·¼ò½é£¨ÒÔºóд¸öÈ«×ÊÁÏÆª£©£º

ÄãÖªµÀÖÇÁ¦ÓÎÏ·½çµÄÈý´ó²»¿É˼ÒéÂð£¿ËüÖ¸µÄÊÇÖйúµÄ“»ªÈݵÀ”£¬ ·¨¹úµÄ“¶ÀÁ¢×êʯ”ºÍÐÙÑÀÀûµÄ“ħ·½”¡£
»ªÈݵÀ£¬¹ÅÀϵÄÖйúÓÎÏ·£¬ÒÔÆä±ä»¯¶à¶Ë¡¢°ÙÍæ²»ÑáµÄÌØµãÓëÆßÇɰ塢¾ÅÁ¬»·ºÏ³Æ“ÖйúµÄÄÑÌ┡£

»ªÈݵÀÓÎÏ·È¡×ÔÖøÃûµÄÈý¹ú¹ÊÊ£¬²Ü²ÙÔÚ³à±Ú´óÕ½Öб»Áõ±¸ºÍËïȨµÄ“¿àÈâ¼Æ”¡¢“»ðÉÕÁ¬Óª”´ò°Ü£¬±»ÆÈÍËÌÓµ½»ªÈݵÀ£¬ÓÖÓöÉÏÖî¸ðÁÁµÄ·ü±ø£¬¹ØÓðΪÁ˱¨ ´ð²Ü²Ù¶ÔËûµÄ¶÷Ç飬Ã÷±ÆÊµÈã¬ÖÕÓÚ°ïÖú²Ü²ÙÌÓ³öÁË»ªÈݵÀ¡£ÓÎÏ·¾ÍÊÇÒÀÕÕ“²ÜÂ÷±ø°Ü×ß»ªÈÝ£¬ÕýÓë¹Ø¹«ÏÁ··ê¡£Ö»Îªµ±³õ¶÷ÒåÖØ£¬·Å¿ª½ðËø×ßòÔÁú”ÕâÒ»¹ÊÊÂÇé ½Ú¡£

˵Ã÷Óë¹æÔò£º
1. “»ªÈݵÀ”ÓÐÒ»¸ö´ø¶þÊ®¸öС·½¸ñµÄÆåÅÌ£¬´ú±í»ªÈݵÀ¡£ÆåÅÌÏ·½ÓÐÒ»¸öÁ½·½¸ñ±ß³¤µÄ³ö¿Ú£¬Êǹ©²Ü²ÙÌÓ×ߵġ£
2. ÆåÅÌÉϹ²°ÚÓÐÊ®¸ö´óС²»Ò»ÑùµÄÆå×Ó£¬ËüÃÇ·Ö±ð´ú±í²Ü²Ù¡¢ÕÅ·É¡¢ÕÔÔÆ¡¢Âí³¬¡¢»ÆÖҺ͹ØÓ𣬻¹ÓÐËĸö×ä¡£
3. ͨ¹ýÒÆ¶¯¸÷¸öÆå×Ó£¬²»ÔÊÐí¿çÔ½Æå×Ó£¬°ïÖú²Ü²Ù´Ó³õʼλÖÃÒÆµ½ÆåÅÌ×îÏ·½Öв¿£¬´Ó³ö¿ÚÌÓ×ß¡£
4. Ò»¸öÆå×ӵĶà´ÎÁ¬ÐøÒƶ¯Ö»¼ÆÒ»´ÎÒÆ¶¯´ÎÊý

“»ªÈݵÀ”Óм¸Ê®ÖÖ²¼Õó·½·¨£¬È瓺ᵶÁ¢Âí ”¡¢“½üÔÚåë³ß”¡¢“¹ýÎ幨”¡¢“ˮй²»Í¨”¡¢“СÑà³ö³²”µÈµÈÍæ·¨¡£ÆåÅÌÉϽöÓÐÁ½¸öС·½¸ñ¿Õ×Å£¬Íæ·¨¾ÍÊÇͨ¹ýÕâÁ½¸ö¿Õ¸ñÒÆ¶¯Æå×Ó£¬ÓÃ×îÉٵIJ½Êý°Ñ²Ü²ÙÒÆ ³ö»ªÈݵÀ¡£Õâ¸öÍæ¾ßÒýÆð¹ýÐí¶àÈ˵ÄÐËȤ£¬´ó¼Ò¶¼Á¦Í¼°ÑÒÆ¶¯µÄ²½Êý¼õµ½×îÉÙ¡£

´ó¶àÊýÔÚ100²½ÒÔÄڸ㶨¶¼ÊǺÜÀ§Äѵģ¬×î¼òµ¥µÄÊǵÚ44¹Ø£¨iPhone¹Ø¿¨1£©¡£
Õâ¹ØÎÒÍæÁËÁ½±é£¨¶¯Ì¬»Ø·Å¼Ç¼£©£¬×î¿ìÓÃÁË50²½£¬¸Ð¾õÓ¦¸Ã¿ÉÒÔÔÚ40²½×óÓҸ㶨µÄ¡£

ºÇºÇ£¬µã»÷ÕâÀïÌôսһϲ»¿É˼ÒéµÄ»ªÈݵÀ°É¡£

»¶Ó­ÈκÎÒâ¼ûºÍ½¨Òé¡£

 
2008Äê07ÔÂ24ÈÕ ÐÇÆÚËÄ 13:18
a { color:#0000CC; text-decoration:none; }
a:visited { color:#0000CC; text-decoration:none; }
a:hover { text-decoration:underline; }
a img { padding: 0px; margin: 0px auto; border-style:none; }
img { padding: 0px; margin: 0px auto; border-style:none; }
input:focus, select:focus, textarea:focus {
border: 1px solid #ff00ff;
background:#FFFFBB;
}
thead { background: #ccff99; }
input, textarea { border: 1px solid #c0c0c0; }
ul { padding:0px; margin:0px auto; list-style:none; }
.submit { background:#ccff99; font-size:x-large; }
.error_text, .errorlist { color:#F80098; }
.error { border: 3px solid red; }
.clear { clear:both; }
body {
font-family:"Verdana", "Tahoma", "Georgia", "Arial", "΢ÈíÑźÚ", "ËÎÌå";
padding: 0px;
margin:0px auto;
}
table, ul { font-family: "΢ÈíÑźÚ", "ËÎÌå"; }
form { padding-left:3px; }
 
2008Äê07ÔÂ24ÈÕ ÐÇÆÚËÄ 13:11

½ÓÉÏÆª£º´úÂë·¢Ñ¿Íø - ´úÂë¸ßÁÁ - Ìí¼ÓÁË22¸öÁ÷ÐеÄvimÅäÉ«Ö÷Ìâ
¼ÌÐøÔöÇ¿ÄÚ¹¦¡£

´úÂë·¢Ñ¿Íø( http://www.fayaa.com/code/ )¼ò½é£º
1. ÎÞÐè²å¼þÖ§³Öblog´úÂë¸ßÁÁ
2. ½ü°ÙÖÖ±à³ÌÓïÑÔ£¬30¶à¸öÁ÷ÐеĸßÁÁÖ÷Ìâ
3. Îȶ¨Ö§³Ö¸÷ÖÖblog¡¢ÂÛ̳¡¢ÓÊÏä

×îиüУº
1. ½çÃæ¸üУºÒ»¸ÄÔ­À´µÄ»ìÂÒ·½°¸£¬²ÉÓøü¼ÓÇåÎúµÄ±í¸ñ¡¢²¼¾ÖÀ´°ïÖúÄã¸ü¸ßЧµÄÍê³É´úÂë¸ßÁÁ¡¢Êղء¢ÆÀÂ۵ȲÙ×÷

2. Ö§³ÖÂÛ̳£ºÂÛ̳ÖÐÒ»°ãΪÁ˰²È«¿¼ÂDzÉÓÃBBcode£¬×î½ü¸üÐµĹ¦ÄÜ£¨ÏÔʾ´úÂëÒ³µã»÷”¸´ÖÆBBcode”£©¶ÔDiscuz!µÈÂÛ̳Óзdz£°ôµÄÖ§³Ö¡£

3. µã»÷¸´ÖÆ£ºÓв»ÉÙÍøÓÑÊÔÓõÄÊÇHTML¼òµ¥±à¼­Æ÷£¬Ìá³öÐèÒª¼òµ¥µÄ¸´ÖÆHTML´úÂëµÄ¹¦ÄÜ£¬ÏÖÔÚÌṩµÄÖ»ÐèÒªµã»÷Ò»¸öÁ´½Ó¼´¿ÉÍê³É¡£Í¬ÑùÒ²ÌṩÁ˶ÔBBcodeºÍÔ´´úÂëµÄ¸´Öƹ¦ÄÜ¡£

4. ËÑË÷¹¦ÄÜ£ºÌṩÁËËÑË÷ËùÓдúÂë±êÌâµÄ¹¦ÄÜ

5. һЩbug fixºÍ±ß½Ç¹¦ÄܵĸüУ¬Ê¹µÃÉú³ÉµÄ´úÂëÌå»ýϽµÁË50%£¡£¨¾ÝÎÒʵÑ飬Ëä²»Ëã×îÓÅ£¬¿É¸Ä½ø¿Õ¼äÒѾ­ºÜСÁË£©

BTW: ¸Õ¸ÕÊÔÁËÒ»ÏÂCSDNµÄblog£¬¾ÓÈ»ÒѾ­¿ÉÒÔÖ§³ÖÁË£¬¿´À´CSDN°µ×ÔÔÚ¸üС£

 
2008Äê07ÔÂ11ÈÕ ÐÇÆÚÎå 12:31

Ðí¶àÅóÓÑ˵´úÂë·¢Ñ¿ÍøÐèÒªÔöÇ¿ÄÚ¹¦£¬ºÇºÇ£¬ÕâÁ½ÌìÔÚ¸ãÑÕÉ«Ö÷Ìâ¡£
±¾À´Ïë¸ã¿É¶¨ÖƵģ¬ÏëÏëĿǰӦ¸ÃûÈË»áÈ¥Óã¬ÏȸéÒ»¸é

²»Äܶ¨ÖÆ£¬¾ÍÖ»ÄÜ×Ô¼º¸ãÁË£¬µ«ÊÇÕâ¸öÒ²¿ÉÒÔÈ¡ÇÉ£¬¶ÔÓÚûÓÐʲôÑÕÉ«ÃÀ¸ÐµÄÈËÀ´Ëµ£¬ÓÃÏֳɱÈ×Ô¼º´ÓÍ·×öÒªºÃ
ÒòΪÎÒ×îϲ»¶ÓÃvim£¬ËùÒÔÊ×ÏÈÏëµ½µÄ¾ÍÊÇÁ÷ÐеÄvimÖ÷Ìâ¡£
ÏÈ´ÓvimµÄÍøÕ¾ÉϸãÁË22¸ö×îÁ÷ÐеÄÖ÷Ì⣨top downloads and top votes£©£¬°üÀ¨desert / wombat / midnight2µÈµÈ¡£
Õû¸ö¹ý³Ìͦ·³µÄ£¬Ð´ÁËÎåÁù¸öpython½Å±¾²ÅÃãÇ¿¸ã¶¨£¬Õ⻹ÊÇÔÚÓÐÏֳɵÄvim2pygments½Å±¾£¨²»ÊÇÖ±½Óת³Écss£©µÄ°ïÖúÏ¡£

²»ËµÆäÖеļèÄÑ£¬Ëæ±ã´ò¿ªÒ»Æª¸Ä¸ÄÅäÉ«¿´¿´Ð§¹û°É£ºhttp://www.fayaa.com/code/view/157/

ÁíÍ⣬ѡÔñÅäÉ«·½°¸µÄͬʱҲѡÔñÁËËüµÄĬÈϱ³¾°É«£¬¿ÉÒÔͨ¹ýÑ¡Ôñ±³¾°É«À´µ÷½Ú£¬ÓÉÓÚÕâÁ½ÖÖÑ¡Ôñ´æÔÚ³åÍ»£¬×îÖյı³¾°É«ÒÔ×îºóµÄÄÇ´ÎÑ¡ÔñΪ׼¡£

ÁíÍâÒ»¸ö¿´²»¼ûµÄ¸üÐÂÊÇ£º´ÓÕâÒ»°æ¿ªÊ¼Ê¹ÓÃjQuery¡£
Ò»Ö±¶ÔjQuery´¹ÏÑÈý³ß£¬µ«ÊÇ×ÜÊÇÒòΪÆäÌå»ý¶ø¸Ðµ½ÓÌÔ¥£¬ºóÀ´¸ã¶¨ÁËcss/jsѹËõ´«µÝÒÔºó¾ÍÁ¢ÂíͶÈëÁËjQueryµÄ»³±§¡£
ÓÃÁËjQueryÖ÷ÒªÊÇ·½±ãÒÔºó×öһЩСµÄЧ¹ûµÄʱºò±È½Ï·½±ã£¬Ò²²»Óùý¶àµ£ÐÄä¯ÀÀÆ÷¼æÈÝÎÊÌâÁË¡£

BTW: ÏÖÔÚÎÒ×îϲ»¶µÄvimÖ÷ÌâÊÇwombat£¬Ôø¾­×îϲ»¶desert.
¸ü¼ÓBTµÄW: ²»Öª²»¾õ¼ä£¬ÄÚ²¿Ìá½»ÐòºÅÒѾ­´ïµ½ÁË200£¬Ã¿ÍícheckinÒ»´ÎÒ²ÐèÒªÁù¸öÔ°¡£¬¿¿£¬¾ÓÈ»Õâô³¤Ê±¼ä¹ýÈ¥ÁË¡£

------------------------------------------------------------------------------------------------------------------------
ÌùÒ»¸öÎÒÔÚvimÀï×îϲ»¶µÄwombatÖ÷Ìâ¿´¿´Ð§¹û
------------------------------------------------------------------------------------------------------------------------

WombatÖ÷Ì⣺
Python´úÂë: Python - ÈËÐÔ»¯µÄʱ¼ä£¨±ÈÈ磺Á½·ÖÖÓÒÔǰ£©
01 #ÈËÐÔ»¯µÄʱ¼ä£º2008-01-27 08:37:29
02 #·¢Ñ¿ÍøÊ¹Óô˺¯ÊýÀ´ÏÔʾÈËÐÔ»¯µÄʱ¼ä£º±ÈÈç1·ÖÖÓÒÔǰ£¬ÈýÌìǰ£¬µÈµÈ
03 def time_span(ts):
04    delta = datetime.now() - ts
05    if delta.days >= 365:
06        return '%dÄêǰ' % (delta.days / 365)
07    elif delta.days >= 30:
08        return '%d¸öÔÂǰ' % (delta.days / 30)
09    elif delta.days > 0:
10        return '%dÌìǰ' % delta.days
11    elif delta.seconds < 60:
12        return "%dÃëǰ" % delta.seconds
13    elif delta.seconds < 60 * 60:
14        return "%d·ÖÖÓǰ" % (delta.seconds / 60)
15    else:
16        return "%dСʱǰ" % (delta.seconds / 60 / 60)
 
2008Äê07ÔÂ02ÈÕ ÐÇÆÚÈý 20:31
Wordpress / Bo-blog / Z-BlogµÈ³ÌÐòÖ§³Ö¶ÈºÜºÃ£¬ÕâÀï¾Í²»ËµÁË¡£

¾­¹ýÑéÖ¤£¬Ö§³ÖÏÂÁÐÍøÕ¾£¬»ù±¾º­¸ÇÁËÖйúÖ÷Á÷µÄblogÌṩÉÌ£º
£¨Á¬½Óµã½øÈ¥¿ÉÒÔ¿´µ½·¢µÄblog´úÂë¸ßÁÁÑùÀý£©
Blogbus, °Ù¶È¿Õ¼ä,
51CTO£¬Ï£ÈüÍø£¬
ÍøÒ×163²©¿Í£¬Ì켫²©¿Í£¬ÐÂÀ˲©¿Í£¬
MSN¿Õ¼ä£¬Ð£ÄÚÍø£¬
Å£²©Íø£¬²©¿Í(bokee)Íø£¬
Öйú²©¿Í(blogcn)Íø£¬
Íá¿áÍø£¬yahoo²©¿Í

QQºÍCSDN·¢blogºÜÂý£¬»¹È¥³ýÁËËùÓеĻ»ÐУ¬Ã»°ì·¨Ö»ºÃ·ÅÆú¡£DonewsÕʺźÍmopÕʺųåÍ»£¬ÊÔÁ˽¨Á¢²»Æðblog£¬·ÅÆú¡£
¸ãЦµÄÊÇ51CTO°Ñfayaa.comÁÐÈëÁËÎ¥½û´Ê±í£¬ÊµÔÚÊǸ߿´ÎÒÁË¡£²»¹ýÎҺܴó¶ÈµÄ£¬Á´½ÓÕÕ¼Ó²»Îó :D

01 #coding=utf-8
02
03 from django.db import models
04 from django.contrib.auth.models import User
05
06 # Create your models here.
07 class UserProfile(models.Model):
08     user = models.ForeignKey(User, unique=True)
09
10     #used for key activation
11     activation_key = models.CharField(max_length=40)
12     key_expires = models.DateTimeField()
13     #a url is needed for web2.0
14     url = models.URLField()
15     #TODO@@@@not used for now
16     phone_numer = models.CharField(default="13800138000", max_length=20)
17     home_address = models.CharField(default="·¢Ñ¿Íø", max_length=100)
18
19     class Admin:
20         pass
21
22 #user preference recorder :)
23 class UserSettings(models.Model):
24     user = models.ForeignKey(User, unique=True)
25     key = models.CharField(max_length=40)
26     value = models.CharField(max_length=40)
 
2008Äê06ÔÂ27ÈÕ ÐÇÆÚÎå 2:25
´úÂë·¢Ñ¿Íø£ºÎÞÐè²å¼þÖ§³Öblog´úÂë¸ßÁÁ, http://www.fayaa.com/code/
ÒÑÖªÖ§³Ö£º°Ù¶È¿Õ¼ä, ÍøÒ×ÓÊÏä¡¢ÍøÒײ©¿Í, ÐÂÀ˲©¿Í, Å£²©Íø, CSDN, »ùÓÚWordpressµÄBlog, Google Gmail
ÍøÕ¾¼Ü¹¹£ºDjango + Pygments£¬¼ÜÔÚshared hostÉÏÃæ(bluehostµÄÖ÷»ú)

¸Ðл¸÷λÔÚ·´À¡Ò³ÃæÒÔ¼°Óʼþ×鏸³öµÄ½¨Ò飬Õâ¶Îʱ¼ä¶¼ÔÚ¸üÐÂ
£¬´¿ÐËȤµÄ¶«Î÷£¬Ê±¼ä²»¹»°¡...
×î½üÖ÷Òª¸üÐÂÈçÏ£º
1. ½çÃæ½øÐÐÁ˸ü¶àµÄµ÷Õû£¬ÈÃ×ÖÌåÅäÉ«ÏԵøü¼ÓÊæ·þ£¬°Ñ±íÇéͼƬ¸ÄСÁËһЩ£¬¿´ÆðÀ´¸ü¼ÓЭµ÷
2. ¼ÓÈëÁË·½±ã¸´ÖÆ´úÂëµÄ°´Å¥
3. ¼ÓÈëÁË"¸øÓû§·¢ÐÅ"¹¦ÄÜ
4. ·¢×Ô¼ºÓõÄÁÙʱÌù²»ÐèÒªÌî±êÌâÁË
5. ¿ÉÒÔÑ¡Ôñ×ÖÌåÁË£¬»áö¾ÙÕâЩ×ÖÌ壨»úÆ÷ÉÏûÓÐÔò²»ÏÔʾ£©£º'Consolas', 'Lucida Console', 'Courier New', 'Bitstream Vera Sans Mono', 'monospace', 'Fixedsys', 'Monaco'
£¨Ä¿Ç°¸´ÖÆÕ³ÌùÒÔºó×ÖÌ廹ÔÚ£¬µ«ÊÇ·¢blog / emailÒÔºó×ÖÌåÏûʧ£¬»¹Ã»ÓиãÇå³þÊÇÄÄÀïµÄÎÊÌâ...£©

ÌùÒ»¸öÀý×Ó°É£¬¿´ÆðÀ´¿ÉÄܸı䲻´ó£¬µ½ÍøÕ¾ÉÏ¿ÉÒÔ¿´µ½¸ü´óµÄ¸Ä±ä¡£
Python´úÂë: Python - ÈËÐÔ»¯µÄʱ¼ä£¨±ÈÈ磺Á½·ÖÖÓÒÔǰ£©
01 #ÈËÐÔ»¯µÄʱ¼ä£º2008-01-27 08:37:29
02 #·¢Ñ¿ÍøÊ¹Óô˺¯ÊýÀ´ÏÔʾÈËÐÔ»¯µÄʱ¼ä£º±ÈÈç1·ÖÖÓÒÔǰ£¬ÈýÌìǰ£¬µÈµÈ
03 def time_span(ts):
04    delta = datetime.now() - ts
05    if delta.days >= 365:
06        return '%dÄêǰ' % (delta.days / 365)
07    elif delta.days >= 30:
08        return '%d¸öÔÂǰ' % (delta.days / 30)
09    elif delta.days > 0:
10        return '%dÌìǰ' % delta.days
11    elif delta.seconds < 60:
12        return "%dÃëǰ" % delta.seconds
13    elif delta.seconds < 60 * 60:
14        return "%d·ÖÖÓǰ" % (delta.seconds / 60)
15    else:
16        return "%dСʱǰ" % (delta.seconds / 60 / 60)
 
2008Äê06ÔÂ26ÈÕ ÐÇÆÚËÄ 2:08
ÌùÒ»¸öÀý×ÓÊÔÊÔ¿´£º
Python´úÂë: Python - ÈËÐÔ»¯µÄʱ¼ä£¨±ÈÈ磺Á½·ÖÖÓÒÔǰ£©
01 #ÈËÐÔ»¯µÄʱ¼ä£º2008-01-27 08:37:29
02 #·¢Ñ¿ÍøÊ¹Óô˺¯ÊýÀ´ÏÔʾÈËÐÔ»¯µÄʱ¼ä£º±ÈÈç1·ÖÖÓÒÔǰ£¬ÈýÌìǰ£¬µÈµÈ
03 def time_span(ts):
04    delta = datetime.now() - ts
05    if delta.days >= 365:
06        return '%dÄêǰ' % (delta.days / 365)
07    elif delta.days >= 30:
08        return '%d¸öÔÂǰ' % (delta.days / 30)
09    elif delta.days > 0:
10        return '%dÌìǰ' % delta.days
11    elif delta.seconds < 60:
12        return "%dÃëǰ" % delta.seconds
13    elif delta.seconds < 60 * 60:
14        return "%d·ÖÖÓǰ" % (delta.seconds / 60)
15    else:
16        return "%dСʱǰ" % (delta.seconds / 60 / 60)
 
2008Äê06ÔÂ01ÈÕ ÐÇÆÚÈÕ 18:31
1. Ö±½Ó´ò¿ªhttp://www.fayaa.com/code/new/£¬È»ºó°ÑÄãµÄ´úÂëÌùÉÏÈ¥£¬Ñ¡ÓïÑÔ£¬×ÅÉ«£¬ºÃÁ˸ßÁÁµÄ´úÂë³öÀ´ÁË
2. °Ñ×ÅÉ«½á¹ûÑ¡ÖУ¬¸´ÖÆ(Ctrl+C)£¬ÔÚÑ¡Ôñ²¢¸´ÖÆÖ®Ç°¿ÉÒÔÓÓÇл»ÐкŔ°ÑÐкŹصô
3. µ½blogÀïÃæÕ³Ìù£¬·¢blog

ÆäʵÄã¿ÉÒÔÓµÓиü¶àÑ¡Ôñ£¬±ÈÈ磺
1. ÔÚ¸´ÖÆÕ³Ìù֮ǰ»»»»´úÂëµÄÅäÉ«Ö÷Ì⣬ÒÔ±ãÕ³ÌùµÄʱºò»ñÈ¡¸üºÃ¸üЭµ÷µÄЧ¹û
2. µ½´úÂë·¢Ñ¿ÍøÊ×Ò³(http://www.fayaa.com/code/)×¢²áÒ»¸öÕʺţ¬È»ºóÌùÉÏÈ¥£¬ÕâÑùÄã¾Í¿ÉÒÔ¼ÌÐø¹ÜÀíÕâ·Ý´úÂ룬´Ó¶øÓµÓа汾¹ÜÀíÒÔ¼°´úÂëÊղء¢ÆÀÂ۵ȹ¦ÄÜ£¬ÄúÌùÉϵĴúÂëÒ²¿ÉÒÔ±»³¤¾Ã±£´æ¡£

¾Ù¸öÀý×Ó£º×¥È¡ôÜʰٿÆÇ°100Ò³µÄPython½Å±¾
Ô­µØÖ·: http://www.fayaa.com/code/view/15/

01 #coding=utf-8
02 #ÐèÒªBeautifulSoup£¨ÃÀÀöµÄÌÀ£©Ö§³Ö:http://crummy.com/software/BeautifulSoup
03
04 import urllib
05 import urllib2
06 from xml.sax.saxutils import unescape
07 from BeautifulSoup import BeautifulSoup          # For processing HTML
08
09 def formalize(text):
10     result = ''
11     lines = text.split(u'\n')
12     for line in lines:
13         line = line.strip()
14         if len(line) == 0:
15             continue
16         result += line + u'\n\n'
17     return result
18
19 outfile = open("qiushi.txt", "w")
20 count = 0
21 for i in range(1, 101):
22     url = "http://qiushibaike.com/qiushi/best/all/page/%d" % i
23     data = urllib2.urlopen(url).readlines()
24     soup = BeautifulSoup("".join(data))
25     contents = soup.findAll('div', "content")
26     stories = [str(text) for text in contents]
27     for story in stories:
28         count += 1
29         print "processing page %d, %d items added" % (i, count)
30         minisoup = BeautifulSoup(story)
31         text = ''.join([e for e in minisoup.recursiveChildGenerator() if isinstance(e, unicode)])
32         text = urllib.unquote(unescape(text, {'&quot;':'"'}))
33         text = formalize(text).encode("utf-8")
34         print >> outfile, '-' * 20 + " %05d " % count + '-' * 20 + "\n"
35         print >> outfile, text + "\r\n"
36 outfile.close()

 
   
 
 
ÎÄÕ·ÖÀà
 
   
 
ÎÄÕ´浵
 
     
 
×îÐÂÎÄÕÂÆÀÂÛ
  

¹þ¹þ¹þ£¬Ì«ÄÑ¿´ÁË¡£
 

×Ô¼ºÐ´ÁËÒ»¸ö´úÂë¸ßÁÁ¹¤¾ß, ´ó¼Ò¿ÉÒÔÊÔÊÔ http://hi.baidu.com/%C6%C6%C0%C3%D0%DC/b
 
 

ΪʲôÎÒÔڰٶȿռäÉÏ·¢ÁËûÓб³¾°ºÍËõ½øÄØ£¿
 

ÇëÎʰٶȿռäÔõôÈôúÂë¸ßÁÁ
   
°ïÖúÖÐÐÄ | ¿Õ¼ä¿Í·þ | Í¶ËßÖÐÐÄ | ¿Õ¼äЭÒé
©2012 Baidu