HTTPでGET その2
Posted feedbacks - Python
1 2 3 4 5 | from urllib2 import *
req = Request("http://ja.doukaku.org/feeds/comments/")
req.set_proxy("localhost:8000", "http")
socket.setdefaulttimeout(1.0)
print urlopen(req).read()
|
タイムアウトをこのデータ取得関数全体でのタイムアウトだと解釈して すべてのメソッド呼び出し前にタイムアウトを設定しなおしています。 確認できませんがposix系でしか動かないかもしれません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import socket
from time import time
def geturl(url, proxy_host, proxy_port, timeout):
timeout += time()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(timeout-time())
s.connect((proxy_host, proxy_port))
s.settimeout(timeout-time())
s.send('GET %s HTTP/1.1\r\n\r\n' % url)
s.settimeout(timeout-time())
r = d = s.recv(2048)
while d:
s.settimeout(timeout-time())
d = s.recv(2048)
r += d
s.close()
return r[r.index('\r\n\r\n')+4:]
|



ところてん
#4798()
Rating2/2=1.00
see: HTTPでGET
[ reply ]