ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #101  
Старый 02.04.2009, 16:22
Аватар для Vid0k
Vid0k
Постоянный
Регистрация: 24.12.2007
Сообщений: 574
Провел на форуме:
3186852

Репутация: 316


Отправить сообщение для Vid0k с помощью ICQ
По умолчанию

Цитата:
Сообщение от t4Nk  
mes += "Connection: close\r\n\r\n"

sock.send(mes)
надо пойти поспать=\
но все равно не пашет(
 
Ответить с цитированием

  #102  
Старый 02.04.2009, 16:34
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

PHP код:
# -*- coding: cp1251 -*-

import sys,socket

socket.socket(socket.AF_INETsocket.SOCK_STREAM)
s.connect(("www.google.ru"80))
print 
'+'

mes   "GET /index.html HTTP/1.1\r\n"\
        
"Host: www.google.ru\r\n\r\n"

s.send(mes)
result s.recv(10240)
s.close()
print 
result 
проверил, все работает!

з.ы.: если тебе нужна полностью страница, и не нужен header ответа, используй urllib:
PHP код:
import urllib
page 
urllib.urlopen("http://google.ru").read()
print 
page 
 
Ответить с цитированием

  #103  
Старый 02.04.2009, 16:46
Аватар для Vid0k
Vid0k
Постоянный
Регистрация: 24.12.2007
Сообщений: 574
Провел на форуме:
3186852

Репутация: 316


Отправить сообщение для Vid0k с помощью ICQ
По умолчанию

спасибо,вот конечный результат забирает всю страницу, а не только первые 1024 байта
PHP код:
 # -*- coding: cp1251 -*-

import sys,socket

socket.socket(socket.AF_INETsocket.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 
 
Ответить с цитированием

  #104  
Старый 02.04.2009, 16:52
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Vid0k, в некоторих случаях твой скрипт будет виснуть.

вот:
PHP код:
    def sendit(sock,packet='',timeout=1):
        
import time
        
if (packet!=''):
            
self.sock.send(packet)
        
self.sock.setblocking(0)
        
total_data=[]
        
data=''
        
begin=time.time()
        while 
1:
            if 
total_data and time.time()-begin>timeout:
                break
            
elif time.time()-begin>timeout*2:
                break
            try:
                
data=self.sock.recv(1024)
                if 
data:
                    
total_data.append(data)
                    
begin=time.time()
                else:
                    
time.sleep(0)
            
except:
                
pass
        
return ''.join(total_data
и испозуеш:
PHP код:
socket.socket(socket.AF_INETsocket.SOCK_STREAM)
s.connect(("www.google.ru"80)) 
result sendit(s,"GET / HTTP/1.1\r\nHost: google.ru\r\n\r\n")
print 
result 
з.ы.: повторяюсь, но для получения страници лучше использовать уже готовую urllib
 
Ответить с цитированием

  #105  
Старый 02.04.2009, 17:34
Аватар для inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Vid0k, с twill твой код будет выглядеть так:

Цитата:
go('http://google.com')
show()
Это - переход на страницу и вывод полученной страницы на экран(а можно и в переменную)
 
Ответить с цитированием

  #106  
Старый 02.04.2009, 17:37
Аватар для Vid0k
Vid0k
Постоянный
Регистрация: 24.12.2007
Сообщений: 574
Провел на форуме:
3186852

Репутация: 316


Отправить сообщение для Vid0k с помощью ICQ
По умолчанию

Цитата:
Сообщение от inlanger  
Vid0k, с twill твой код будет выглядеть так:



Это - переход на страницу и вывод полученной страницы на экран(а можно и в переменную)
не спасибо...
я люблю велосипеды...
 
Ответить с цитированием

  #107  
Старый 02.04.2009, 17:44
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от Vid0k  
спасибо,вот конечный результат забирает всю страницу, а не только первые 1024 байта
PHP код:
 # -*- coding: cp1251 -*-

import sys,socket

socket.socket(socket.AF_INETsocket.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, и т.д.
 
Ответить с цитированием

  #108  
Старый 02.04.2009, 17:47
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Цитата:
Сообщение от inlanger  
Vid0k, с twill твой код будет выглядеть так:



Это - переход на страницу и вывод полученной страницы на экран(а можно и в переменную)
Просто - это не путь тру кодеров, труъ кодеры настолько суровые, что даже веб-приложения пишут на ассемблере
 
Ответить с цитированием

  #109  
Старый 02.04.2009, 18:05
Аватар для Vid0k
Vid0k
Постоянный
Регистрация: 24.12.2007
Сообщений: 574
Провел на форуме:
3186852

Репутация: 316


Отправить сообщение для Vid0k с помощью ICQ
По умолчанию

Цитата:
Честно говоря, я не могу понять, зачем нужно было изьебыватся, чтоб получить страницу именно на сокетах, мне интересно, что ты подразумевал под "Активная работа с заголовками" между прочим, модификацию заголовков я делаю через urllib2, я ж написал, что сокеты целесообразно использовать только в одном случае - если необходимо ПОЛУЧИТЬ ЧАСТЬ заголовка.Примером такого изьебоса я могу считать свой сканнер директорий([NDC] 12 BDS), который получает 12 байт из заголовка и обрывает соединение, в этом случае целесообразно было писать его на сокетах (ИМХО). Во всех остальных случаях я не вижу необходимости юзать сокеты на питоне, отлично справляются и стандартные либы.
чо ты так напрягся?!расслабься, ну захотелось мне!)
нравится тебе твоя урл.либ вот и пиши с ней задоровье
 
Ответить с цитированием

  #110  
Старый 02.04.2009, 18:17
Аватар для Vid0k
Vid0k
Постоянный
Регистрация: 24.12.2007
Сообщений: 574
Провел на форуме:
3186852

Репутация: 316


Отправить сообщение для Vid0k с помощью ICQ
По умолчанию

а и еще вопрос
при выводе строки в консоль нужно чтобы она была на месте
в перле и под виндами работало "\r" но под никсами и в питоне все время переводит на новую строчку(
как с этим бороться?
чо придется все время чистить консоль?(
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ