Тоже не знаю такой возможности, но можно спокойно использовать threading.Condition или создать свой какой-нибудь флаг, и при выставлении его в положение True выходить из потока, я обхожусь так. В принципе немного неудобно, но я привык, и ничего страшного. В принципе на каждую ситуацию находятся свои решения. Меня больше интересует разделение потоков по группам. Вот это мне было бы интереснее, ато шас все потоки безликие.
очередная проблема парсим лог чата, в базу http://dumpz.org/21255/ http://slil.ru/29487987 на локалке вместе кириллицы в базе получаем что-то вроде Code: говоришь РїРѕ СЂСѓСЃСЃРєРё? т.е. UTF и без проблем все это выводим через пхп на сайт, где отображается уже по русски система русская winxpsp3 на другой системе английской win server 2003 sp2 в базе получаю вот такую ерунду Code: ???? ???? ???‹ ???? ???°???°?»?‹ и на сайте получаем теже знаки вопроса структура таблиц одинаковая кодировка cp1251_general_ci перепробовал различные вариации перекодирования и т.п. с unicode, decode, encode либо ничего не изменялось либо начинало сыпать подобными ошибками, которые победить не удалось Code: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128) причем не только в случаи строк с кириллицей
Попробуй так: Code: for chatlogline in open(chatfiles): chatlogline = chatlogline.decode("utf-8", "replace").encode("cp1251") if ' COALITION ' in chatlogline:
на локальной машине все так же работает, но в базе вместо utf - кириллица на другой машине в базе также знаки вопроса ???? - ???????? но судя по всему только вместо символов букв, символы типа !- нормально отображаются
Ну смотри, я тебе пытаюсь подсказать, как правильно занести в базу чтоб там была кириллица. Как там пхп его уже выведет - то эт твоя забота/прямота рук ))Так вот, в случае с первой машиной - все ОК, в базе-кириллица. А вот в случае со второй машиной - проверяй кодировку базы на второй машине, там стопудово не cp1251. P.S. Стандартные символы типа точки, запятой и т.д. имеют одинаковый номер в разных кодировках, поэтому они почти всегда обрабатываются корректно.
разница есть в деофолтной кодировке mysql у меня - Windows Cyrillic (cp1251) а на удаленной UTF-8 Unicode (utf8) в самой базе, таблицах и ячейках и там и там cp1251_general_ci я просто взял базу с локальной машины, очистил её и залил на удаленную, т.е структура таже p.s. еще такой момент, через пхп можно добавлять комменты, комменты с кирилицей без проблем добавляются в туже базу и нормально отображаются
Vaal перед циклом записи в БД попробуйте явно указать кодировку соединения. db.query("SET NAMES 'cp1251'"). Аналогично и в ПХП И попробуйте посмотреть системные переменные мускуля при соединении через ПХП и питон с помощью запроса 'SHOW VARIABLES'
db.query("SET NAMES 'cp1251'") Спасибо! помогло SHOW VARIABLES через питон character_set_client latin1 character_set_connection latin1 character_set_results latin1 через пхп character_set_client latin1 character_set_connection latin1 character_set_results latin1 а если выполнить запрос в пхпмайадмин character_set_client utf8 character_set_connection cp1251 character_set_results utf8
народ помогите чот не могу регулярку написать нужно выбрать весь текст между Code: <div style="color:#00659a; font:18px arial;">{text}Read More</a></div>
Vid0k Code: import re dat = '''<div style="color:#00659a; font:18px arial;">{text}Read More</a></div>''' print re.search(r'''(?msi)<div style="color:#00659a; font:18px arial;">(.*?)Read More</a></div>''', dat).group(1)
Есть у кого нибудь рецепт, как заставить urllib2 ходить через сокс прокси. Для одной прокси делаю грязный хак с помощью SocksiPy так: Code: import socks, urllib2 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"proxy", 1080) urllib2.socket.socket = socks.socksocket req = urllib2.Request('http://internet.yandex.ru') print urllib2.urlopen(req).read() Но работа через несколько проксей паралельно представляется проблематичной
ЕгоАкк да, забыл написать, pycurl идет лесом - незачем плодить сущности и зависимости, если можно обойтись стандартной библиотекой + легковесным встраиваемым модулем Тем более что под py2.6 нет бинарника виндового
SocksiPy подменяет собой стандартную функцию создания сокета в модуле, так что вряд ли что с ним выйдет сделать, хотя думуаю, что если заменить треды на форки, то может чего и выйдет. >легковесным встраиваемым модулем Скриптовые языки для того, чтобы экономить свое время, а не ресурсы, к тому же curl на C всяко быстрее urllib, и еще возможности curl гораздо богаче. >Тем более что под py2.6 нет бинарника виндового Никто не мешает поставить два питона.
Есть бинарники под 2.6. Лично качал предпоследнюю версию, правда так и не понял, зачем. Решения относительно использования соксов совместно с urllib2 не нашел, ищу уже длительное время, есть мысли зарыться в дебри механайза и приделать недостающее, но пока лезть туда страшно. Еще есть мысля разобраться в том как работает асинхронный I/O и добиться до Twisted.
http://code.google.com/p/urllib4/downloads/detail?name=pycurl-ssl-7.19.0.win32-py2.6.msi&can=2&q= Бинарник CURL под 2.6, НеОфф. У себя ставил и запускал, он работал, но на всю катушку не проверял, поэтому качаем на свой страх и риск.
> О да, форки - офигенная мысля, прям в лучших традициях жанра пхп-шных костылей Если вы смотрите на мир через призму пэхопэ, то не знаю что и возразить. Может вам в интернет не ходить? А то ведь вы этим способствуете форканью апача. И да, про форки было только в контексте теоретического решения, а не призыв к их использованию. > Обратно-таки пхпшные костыли, вау. Нагрузка на процессор конечно же роли не играет, угу. Почему-то у меня получается экономить и время и ресурсы, как так ? О_о Curl изначально сишная библиотека. Вы хотите сказать, что urllib писаный на питоне работает быстрее модуля на Си? Как вы экономите время? Когда мне нужно прокси я делаю так: curl.setopt(curl.PROXYTYPE, proxy[0]) # любой тип прокси curl.setopt(curl.PROXY, proxy[1]) curl.setopt(curl.PROXYPORT, proxy[2]) А вы в этом случае обламываетесь. >Очередная мега идея в духе "не могу добиться нормальной работы, поэтому сделаю как-нибудь Ну тут уж без комментариев. Глянул вашу поделку https://forum.antichat.ru/thread147762.html (посмотреть можно в кэше гугла http://dumpz.org/9729/) Мало того, что вы там изгаляетесь с сокетами аки крутой h4xx0r, так вы еще и не знаете о том, что можно использовать gzip сжатие страниц, которое позволило бы в разы сохранить трафик и ускорить работу. Я получил окончательную оценку вашей компетенции, и на этом считаю спор закрытым.
Я их не использую, а потому другим не рекомендую использовать. Почему вы рекомендуете людям форки, хотя сами их не используете ? Быстрее - не думаю, "легче" - да. И если уж говорить о скорости в сетевых задачах - посмотрите в сторону Twisted. Сомневаюсь что CURL его сделает, а если и сделает то он будет ненамного быстрее, зато ценой нагрузки на машину. Да ну? А по-моему соксы не так уж сильно и востребованы, людям обычно и http проксей хватает. Конечно без комментариев, а что комментировать? То что с каждым новым релизом интерпретатора разработчики стараются перепрыгнуть на более новую версию, а вы все также застываете на одной, к которой вы привязаны из-за вашего любимого CURL. Очень Python-ично.
Не вам оценивать мою компетенцию, тем более не предоставив никаких доказательств своей компетенции. P.S. Не считаю необходимым доказывать кому-либо свою компетенцию.