Я пытаюсь выполнить следующий код из главы 12 книги «Python для информатики».
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send('GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n')
while True:
data = mysock.recv(512)
if ( len(data) < 1 ) :
break
print data
mysock.close()
Согласно книге, скрипт должен напечатать следующее:
HTTP/1.1 200 OK Дата: Воскресенье, 14 марта 2010 г., 23:52:41 по Гринвичу Сервер: Apache Последнее изменение: Вт, 29 декабря 2009 г., 01:31:22 по Гринвичу ETag: «143c1b33-a7-4b395bea». Content-Length: 167 Connection: close Content-Type: text/plain Но мягкий свет, что пробивается сквозь вон то окно Это восток и Джульетта это солнце Встань прекрасное солнце и убей завистливую луну Которая уже больна и бледна от горя
К сожалению, данные переменной заполнены следующей строкой:
'HTTP/1.1 400 Неверный запрос. Неверное количество частей команды ['GET', 'http://www.py4inf.com/code/romeo.txt', 'HTTP/1.0', 'X-WS-Ver:', '1.0']'
Я не могу найти хорошего объяснения этой ошибке. Я надеюсь, что кто-то может помочь!
requests.get(url).text
. - person postelrich   schedule 27.09.2016HTTP/1.1 200 OK
запуск приведенного выше кода. - person Ahmad   schedule 27.09.2016'GET /code/romeo.txt HTTP/1.1\r\nHost: www.py4inf.com\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\n\r\n'
я удаляю ответ, потому что требуется много определений для каждого исключения или шага. - person dsgdfg   schedule 27.09.2016