Vorug
Это не вопрос по сокетам, а вопрос по протоколу HTTP
так вот как определить что это конец запроса? должны ж быть решения
Ivan
так вот как определить что это конец запроса? должны ж быть решения
Парсить http заголовки, потом тело. Открываем RFC по HTTP и читаем, что является признаком конца сообщения. Т.к. там может прилететь multipart, chunked и еще кучу всего интересного
Ivan
В смысле у HTTP нету символа который обозначает конец сообщения.
Vorug
В смысле у HTTP нету символа который обозначает конец сообщения.
выходит нет и универсального решения, потому как там может быть всё что угодно от хтмл до json
Ivan
Да, будь бы SMTP, там четко прописано, что является признаком окончания сообщения
Ivan
Можешь открыть исходники aiohttp и посмотреть, как это там разруливается или httplib (тут попроще, все-таки не асинхронный код). Но парсить http - то еще удовольствие
Ivan
Ты хочешь написать http client свой?
Ivan
выходит нет и универсального решения, потому как там может быть всё что угодно от хтмл до json
А еще может прилететь base64, бинарщина и одному богу известно, что еще...
UglyKoyote
я так парсил как то ссылки, читая заголовки. и наткнулся на один сайт с онлайн радио
UglyKoyote
долго тупил - почему нету таймаута)))
UglyKoyote
а у меня питон музыку "слушал"
Ivan
И не всегда это будет сопровождаться заголовком Content-Length, а потом у где-нибудь произодёт вообще integer overflow и вообще там отрицательное число прилетит
Vorug
Ты хочешь написать http client свой?
да мне нужен обычный парсер, но особенность сервера такая что надо килять соединения если ответ не вернулся по таймауту, а стандартные либы такого не позволяют, вот приходится разбираться с сокетами потому как там вроде такое можно
Ivan
😕
Ivan
В смысле не позволяет?
Ivan
https://docs.python.org/3/library/urllib.request.html#urllib.request.urlopen - вот 3 параметр timeout
UglyKoyote
https://docs.python.org/3/library/urllib.request.html#urllib.request.urlopen - вот 3 параметр timeout
так я привел пример, как ты там определишь таймаут? а прерывать надо
UglyKoyote
данные то есть на вход
Vorug
В смысле не позволяет?
я сегодня уже в 9:09 описывал проблему, там есть нюанс
Vorug
Хочешь более тонкой настройки, возьми pycurl, там можно каждый отдельный timeout задать, на resolve, на connect и т.д.
да я не программист, это у меня хобби такое, поэтому ищу решения попроще =)
UglyKoyote
вот, то есть можно принудительно даже при потоке данных рвать коннект? спасибо
Ivan
Кинь ссылку на сообщение твоё с проблемой
Vorug
Можно рвать коннект вообще в любое время.
ты его рвёшь в питоне, но по факту соединение продолжает висеть пока не дождётся ответа хотя скрипт уже давно может быть завершился
Ivan
https://t.me/ru_python/883894
requests.session().close() ?
Arsenius
а есть какие-нибудь крупные тг каналы, где фронтендщики сидят?
Vorug
requests.session().close() ?
неа, я всё уже перепробовал, и urllib2, пишут что только через сокеты реализуемо
Ivan
Что? Как оно может висеть, если процесс умер и ОС гарантирует, что закроет все файлы.
Ivan
Оно на сервере весит?
Ivan
Это значит, что сервер не понимает, что с ним порвали соединения, у ОС есть настройка, что в случае определенно времени нету активности на сокете - она его закрывает
Vorug
Что? Как оно может висеть, если процесс умер и ОС гарантирует, что закроет все файлы.
да, вот такая штука, висит и ждёт в снифере, и когда их скапливается прилично сервер начинает меня футболить, поэтому надо делать socket.shutdown
Ivan
s.config['keep_alive'] = False - делай так
Ivan
Один запрос - одно соединение
Vorug
Это значит, что сервер не понимает, что с ним порвали соединения, у ОС есть настройка, что в случае определенно времени нету активности на сокете - она его закрывает
такая настройка может и есть, оно может и закрывает, но у меня сотни запросов в потоках, и на каждый секунд 5 не более надо
Ivan
😕
Ivan
Так, а что за сервре?
Vorug
s.config['keep_alive'] = False - делай так
точнее так не пашет, там s.keep_alive = False вроде уже
Ivan
Точно проблема не клиенте... Он может быть за каким-нибудь nginx спрятан?
Ivan
Так а urllib?
Vorug
Точно проблема не клиенте... Он может быть за каким-нибудь nginx спрятан?
https://stackoverflow.com/questions/5442291/close-urllib2-connection вот тут тип wjd пишет про это
Ivan
Так, давай так, netstat с requests что говорит?
Ivan
Он показывает эти соединения?
Ivan
Или давай в личку
Tishka17
Ребят вопрос по регуляркам. Я могу без lookahead запретить точки в конце, но разрешить в середине строки? Типа блабла.блабла катит, а блбабла... - нет.
Tishka17
Мне не для матча, а для поиска
🍁 Jaŭhien
наверное, можно что-то придумать
UglyKoyote
regex101.com не дает результата такой регуляркой
UglyKoyote
проверял на "sdfg.fsdgdsfgdsgdfs.." - Your regular expression does not match the subject string.
🍁 Jaŭhien
r"(?i)[a-z\.]+[^\.]$"
Tishka17
Так мне для поиска подстроки
Tishka17
Под концом имел ввиду конец подстроки, а не оригинальной
Tigran
Ну можно модифицировать оригинальную регулярку, чтобы в конце была не точка
🍁 Jaŭhien
А что у тебя есть?
Tishka17
Хотя вроде да, можно просто .+[^.]
Tishka17
Чёт туплю
K
Народ, подскажите с чего начать изучать питон если человек слабо знаком с миром программирования
K
эта книга подходит для начинающего? там нет лишней информации?
Tishka17
Попробуй stepik.org
Сережа
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
K
Попробуй stepik.org
Гляну что там есть, ок, может быть что-то полезное по питону будет.
Денис
Ок. Тогда что посоветуешь?
Да хз. У меня образование. Я сам к Python подбирался через Sololearn
K
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
не понял остальную часть про C#/Java хуесосов, но звучало вполне нормально для разработчика который кодит свои пет-проекты
Сережа
Да это копипаста с лурка
Денис
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Как перестать быть романтиком и видеть в деньгах цель а не средство, Сенсей?
Сережа
https://lurkmore.to/копипаста:python
Сережа
Там гайды для любого яп
K
Да это копипаста с лурка
ясн. Я просто уже тот самый хуесос C# энтерпрайз разраб и у меня спрашивают с чего начать изучать питон, за ссылки спасибо, но рейтаните книгу о которой я спрашивал