ÄúÕýÔڲ鿴 "ĬÈÏ·ÖÀà" ·ÖÀàϵÄÎÄÕ 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, {'"':'"'}))
33 text = formalize(text).encode("utf-8")
34 print >> outfile, '-' * 20 + " %05d " % count + '-' * 20 + "\n"
35 print >> outfile, text + "\r\n"
36 outfile.close()
|
| | |