Python: socket post data (простой пример)

Немного проанализировав метрику Яндекса, увидел заходы на сайт в выдачи о примере отправки POST-запроса, реализованного на Python’e.
Поэтому решил немного переделать этот пример реализации сокетов на python. В заголовке POST запроса написал только необходимый минимум, без учета кукисов и юзерагентов etc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
'''
post_socket.py.py
author: Dominus
site: http://k0derz.ru/
'''

import socket, sys

def main():
if len(sys.argv) < 4:
print "Usage: python post_socket.py server port data=test"
sys.exit(1);
HOST = sys.argv[1]      # server adress
PORT = int(sys.argv[2]) # server port
DATA_POST = sys.argv[3] # POST data
DATA_LEN  = str(len(DATA_POST))

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # init TCP socket type
s.connect((HOST, PORT))
s.send("POST /search.php HTTP/1.1\r\nHost: "+ HOST +"\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: "+ DATA_LEN +"\r\n\r\n" + DATA_POST) # send DATA to server
data = s.recv(1024)  # recieve info
s.close()
rsp = repr(data)
print rsp

if __name__ == "__main__":
main()