python urllib urllib2 httplib ·ÃÎÊurlµÄÎÊÌâ
ÎÒÏëÓÃpython½âÎöÍøÒ³ÖеÄurl ÔÚÏÂÔØÖ®Ç°, ÎÒÏëÏÈ·¢Ò»¸öheadÇëÇó ²»ÐèÒªÏÂÔØÕû¸öÍøÒ³, ÏÈ»ñµÃ¸ÃÍøÕ¾µÄheadÐÅÏ¢, ¶ÁȡһЩÐÅÏ¢Ö®ºó ÔÚµ÷ÓÃÕâЩ¿âµÄread·½·¨À´¶ÁÈ¡Õû¸öÍøÒ³ ¸ÃÔõô²Ù×÷ÄØ ¶àл
°ï¶¥ÁË
ÓÐÈËÄÜÖ¸½ÌÒ»ÏÂô ¶àл
e.g.,
...
try:
content = None
content = urllib.urlopen(_url).info()['Content-Type']
print "*"*10, content, _url, urllib.urlopen(_url).info()
stext = 'text/plain'
if content[0:len(stext)] == stext :
urllib.urlretrieve(_url, _dest)
except IOError:
return 0
...
urllib.urlopen(_url).info()ÊÇÖ»ÁÙʱÌá½»Ò»¸öheadÇëÇó, °ÑÒ³ÃæÍ·²¿downÏÂÀ´Ã´??
Ò²¾ÍÊÇ˵ ÎÒÔÚµ÷ÓÃurlopenµÄʱºò ÊÇdownÏÂÀ´Ò»²¿·ÖÍøÒ³ÐÅÏ¢»¹ÊǰÑÕû¸öÍøÒ³ÐÅÏ¢¶¼downÏÂÀ´·Åµ½»º´æÖÐ,È»ºóÔÙµ÷ÓÃread½«Êý¾Ý´òÓ¡³öÀ´ÄØ? ÏÖÔÚÕâÀï²»Àí½âurlopenµÄ¹ý³Ì ÇëÖ¸½Ì ¶àлÁË
ÓÐÈËÄÜÖ¸½ÌÒ»ÏÂô ¶àл
Èç¹ûÓõÄÊÇ urllib2.urlopenÄØ ÊDz»ÊÇÒ²ÊÇÏÈdown¸öÍ·ÐÅÏ¢, È»ºóÔÚ readµÄʱºò²Å¿ªÊ¼ÔÙ´ÎÁ¬½ÓÍøÕ¾¿ªÊ¼down¾ßÌåÄÚÈÝÄØ? ¶àл
Ïà¹ØÎÊ´ð£º
s='aaa111aaa,bbb222,333ccc,444ddd444,555eee666,fff777ggg'
ÓÃÕýÔò±í´ïʽȡ³ö ǰºó×ÖĸÏàͬµÄÊý¾Ý ½á¹ûÈçÏÂ:
111 ddd
лл~
Python code:
import re
s='aaa111aaa,bbb222,333ccc,444ddd444,555eee666,ff ......
ÎÒÿ´ÎÉÏ´«µÄÎļþ¶Áµ½µÄÊý¾Ý¶¼²»ÕýÈ·¡£2M µÄͼƬ¶ÁµÃ10¶àK ¡£¡£ÄÄλ´óÏÀ¿ÉÒÔ°ï°ïÎÒ°¡¡£
#!D:\ProgrammerTools\python26\python.exe
#encoding=utf-8
import cgitb
import os
cgitb.enable()
import cgi,urllib ......
ÓźñµÄ¸å³ê£¬³ÏÕÐPython¼¼ÊõÈËÔ±²ÎÓë¸÷ÖÖ¼¼ÊõÊé¼®³ö°æ¡£
ͨ¹ý¸ÃÊé¼®£¬×÷Õß¿ÉÒԵõ½Èçϱ¨³ê£º
1¡¢·áºñµÄ¸å³ê¡£
2¡¢Êé¼®Öø×÷µÄÊðÃûȨ¡£
3¡¢¶Ô×÷ÕߺÍÊé½øÐÐÐû´«£¬Ìá¸ß×÷ÕßÔÚ¼¼ÊõȦ×ÓÀ ......
·¢ÏÖpython2.6
import httplib
conn=httplib.HTTPSConnection('x.x.x.x')
conn.request('','')
rd=conn.getresponse()
conn.close()
ÕâÑù½áÊøºó»á±ä³ÉCLOSE_WAIT״̬£¬ÎÒ ......
¸Õ¸ÕÂòÁËÒ»±¾¡¶PythonºËÐıà³Ì¡·£¬¿ªÊ¼Ñ§Ï°python¡£´ó¼Ò¶à¶àÖ¸½Ì
µç×ÓÊé¾ÍºÜ¶à¡£¡£¡£
¡¶PythonºËÐıà³Ì¡·ÕâÊéµÄµÚÒ»°æ»¹ÊDz»´íµÄ£¬µÚ¶þ°æºÜ²»Õ¦µÄ£¬ÕæµÄ¡£
¸öÈ˵ÄÒâ¼ûÊÇ£º³õѧÓá¶Dive in Python¡·£¬ ......