| login999 |
02.04.2009 17:44 |
Цитата:
Сообщение от Vid0k
спасибо,вот конечный результат забирает всю страницу, а не только первые 1024 байта
PHP код:
# -*- coding: cp1251 -*-
import sys,socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("www.google.ru", 80))
print '+'
mes = "GET / HTTP/1.1\r\n"
mes += "Host: www.google.ru\r\n"
mes += "User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5\r\n"
mes += "Accept: text/html\r\n"
mes += "Connection: close\r\n\r\n"
s.send(mes)
buff = ""
result = ""
while 1:
buff = s.recv(1024)
if buff:
result += buff
else:
break
s.close()
print result
|
Честно говоря, я не могу понять, зачем нужно было изьебыватся, чтоб получить страницу именно на сокетах, мне интересно, что ты подразумевал под "Активная работа с заголовками" между прочим, модификацию заголовков я делаю через urllib2, я ж написал, что сокеты целесообразно использовать только в одном случае - если необходимо ПОЛУЧИТЬ ЧАСТЬ заголовка.Примером такого изьебоса я могу считать свой сканнер директорий([NDC] 12 BDS), который получает 12 байт из заголовка и обрывает соединение, в этом случае целесообразно было писать его на сокетах (ИМХО). Во всех остальных случаях я не вижу необходимости юзать сокеты на питоне, отлично справляются и стандартные либы. В качестве исключения могу сказать только то, что над server-side приложениями я не трудился и как они будут себя вести при огромных нагрузках я не знаю, с клиентской частью у мну ни разу никаких напрягов не было. Но в пользу server-side приложений говорят Twisted, Django, Plone, Turbo Gears, и т.д.
|