Комментарии 12
# Принимаем переданных клиентом данные, но не более 1024 байт
data = conn.recv(1024)
Скорее принимаем первые 1024 байта. Это работа с сырыми сокетами и команда, как я понимаю является прямым биндингом к recv в C.
Думаю в python есть более высокоуровневые решения.
Поправьте, если ошибаюсь.
0
А вообще жду на github. Так и читать код приятнее будет и может кто-то что-то захочет добавить.
0
Завтра собираюсь отрефакторить и залить, и, возможно, подготовить немного кода для следующей статьи, преимущественно про защиту.
0
Как и обещал, написал продолжение статьи и выложил код на GitGub.
0
Да, всё верно. Данная команда является просто связкой с системными сокетами и читает первые 1024 (или меньше) байт от ещё не прочитанных. Правильнее было бы читать их небольшими кусками в цикле, но, так как данные небольшие, можно просто прочитать первые 1024 байт. Сомневаюсь, что кому-то потребуется скачать сайт, у которого адрес больше тысячи символов длиной.
0
Бывают ссылки с трекингом googe analytics(utm=....). Они бывает и в 2к символов не укладываются. Плюс еще utf… Ну в общем вы поняли к чему я.
0
Фокусы начнутся при плохом интернет соединении и нетерпеливом пользователе, который быстро пошлет 2 команды, а у вас на сервере они соединятся в 1, так как TCP это поток данных, он не разделяет сообщения.
Либо на оборот получение одной команды разобьется на «2 разных сообщения».
Либо на оборот получение одной команды разобьется на «2 разных сообщения».
0
0
Во-первых, это не стандартная библиотека, а меня интересовали именно встроенные в Python средства для сетевого программирования. Во-вторых, что самое главное, предназначение у этой библиотеки другое, что понятно даже по названию.
Feature Support
Requests is ready for today’s web.
International Domains and URLs
Keep-Alive & Connection Pooling
Sessions with Cookie Persistence
Browser-style SSL Verification
Basic/Digest Authentication
Elegant Key/Value Cookies
Automatic Decompression
Unicode Response Bodies
Multipart File Uploads
Connection Timeouts
.netrc support
Python 2.6—3.4
Thread-safe.
International Domains and URLs
Keep-Alive & Connection Pooling
Sessions with Cookie Persistence
Browser-style SSL Verification
Basic/Digest Authentication
Elegant Key/Value Cookies
Automatic Decompression
Unicode Response Bodies
Multipart File Uploads
Connection Timeouts
.netrc support
Python 2.6—3.4
Thread-safe.
+1
Специально для тех, кто придёт из гугла по запросу «скачать сайт» напоминаю про отличный многопоточный инструмент скачивания страниц/сайтов: github.com/binux/pyspider
Он не из простых, но за час можно вполне освоится со всеми фишками и успешно скачать сайт.
Он не из простых, но за час можно вполне освоится со всеми фишками и успешно скачать сайт.
0
Это, конечно, далеко всё, что можно и нужно реализовать, но, тем не менее
Думаю вы имели ввиду «далеко не все» :) Исправте! А так, статья самое то для познания python, хорошо разжевана!
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Удалённое исполнение системных команд по запросу через сокеты на Python 3 или как я сайты скачивал