Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2014 18:34:30

Egor2010
Зарегистрирован: 2014-10-22
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Сокет http

Добрый день.
Можно ли заменить urllib.urlopen на сокет?
Чтобы скачивал html и показывал его код.
Если да то как?

Офлайн

#2 Ноя. 12, 2014 21:00:32

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Сокет http

# -*- coding: utf-8 -*-
import socket
def load_page(url):
    host, url=url.split('/', 1)
    client=socket.socket(socket.AF_INET, socket.SOCK_STREAM,0)
    client.connect((socket.gethostbyname(host), 80))
    print('ok connect')
    client.send('GET /{0} HTTP/1.0\r\nHost: {1}\r\nUser-agent: Python\r\n\r\n'.format(url, host))
    string = client.recv(1024).split('\r\n')
    for t in range(len(string)):
        if not string[t] or string[t].isspace():
            break
    print('\r\n'.join(string[:t+1])) # Header
    string=['\r\n'.join(string[t+1:])]
    while True:
        t = client.recv(1024)
        if not t:
            break
        print('load {0} byte'.format(len(t)))
        string.append(t)
    return ''.join(string)
  
if __name__=='__main__':
    page = load_page('python.su/')
    print(page)
  

Офлайн

#3 Ноя. 13, 2014 02:57:17

Egor2010
Зарегистрирован: 2014-10-22
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Сокет http

Спасибо

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Thu, 13 Nov 2014 00:51:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 79776
Connection: close
Vary: Accept-Encoding
Vary: Cookie
load 424 byte
load 1024 byte
load 1024 byte
что за load?
есть ли технологии похожии на сокеты?

Офлайн

#4 Ноя. 13, 2014 08:18:31

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Сокет http

что за load?
Вы код смотрели? Найдите в коде где выводится load и гляньте, что он выводит. Это схематично показано, что там можно организовать прогресс-бар загрузки контента, взяв конечный размер из заголовка (Content-Length)

Офлайн

#5 Ноя. 13, 2014 10:45:09

Egor2010
Зарегистрирован: 2014-10-22
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Сокет http

Я только сейчас за гуглил что такое процесс бар до этого не знал
Есть ли аналоги сокетов?

Отредактировано Egor2010 (Ноя. 22, 2016 15:56:00)

Офлайн

#6 Ноя. 13, 2014 11:14:02

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Сокет http

Аналоги для чего, какие задачи ? Сокет ведь много где используется, не только для интернета.

Офлайн

#7 Ноя. 13, 2014 11:43:26

Egor2010
Зарегистрирован: 2014-10-22
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Сокет http

Задачи : соединение компьютеров через сеть, передача данных

Отредактировано Egor2010 (Ноя. 13, 2014 11:51:36)

Офлайн

#8 Ноя. 13, 2014 13:21:55

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Сокет http

Для клиент-сервер есть библиотека Twisted. Вы бы погуглили чтоли, да и выбрали, что вам подходит…

Офлайн

#9 Ноя. 14, 2014 16:01:39

Egor2010
Зарегистрирован: 2014-10-22
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Сокет http

Я о другом сама twisted это только Python а сокеты во многих языках есть.

ok connect
HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.ru/?gfe_rd=cr&ei=rK5kVL_fCdeCtAHs8YDwAg
Content-Length: 258
Date: Thu, 13 Nov 2014 13:14:20 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic,p=0.002

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.ru/?gfe_rd=cr&amp;ei=rK5kVL_fCdeCtAHs8YDwAg">here</A>.
</BODY></HTML>
в чем проблема ?
 302 Found, 302 Moved Temporarily — запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. Этот код может быть использован, например, при управляемом сервером согласовании содержимого. Некоторые клиенты некорректно ведут себя при обработке данного кода. Введено в HTTP/1.0.

Офлайн

#10 Ноя. 14, 2014 16:24:48

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Сокет http

Где проблема?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version