1. Python / Говнокод #15385

    −103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    li = item_parser.select('//li')
    for i in li:
        try:
            i.extract().index(u'Цены')
            item.price = i.select('span/text()').extract()[0]
        except ValueError:
            pass
        try:
            i.extract().index(u'Модификации')
            item.modification = i.select('span/text()').extract()[0]
        except ValueError:
            pass
        try:
            i.extract().index(u'Отзывы')
            item.reviews = i.select('span/text()').extract()[0]
        except ValueError:
            pass

    Ниосилила utf...

    Запостил: kyzi007, 07 Марта 2014

    Комментарии (102) RSS

    • да и питон в целом не осилила.
      все это try:
      i.extract().index(u'Цены')
      item.price = i.select('span/text()').extract()[0]
      except ValueError:
      pass
      в цикл тоже надо
      Ответить
    • В ХПУть нельзя его было индекс запихать? Как-то не совсем понятно зачем выбирать все совпадения, а потом пользоваться только первым.
      Ответить
      • Он с кириллицей не захотел работать, в том то и дело. Про u'строка' я в курсе.
        Ответить
      • Какой индекс?
        Ответить
        • > Какой индекс?
          i.select('span/text()[0]')
          По идее должен выбрать первый текстовый узел. Или select() в любом случае списков возвращает?
          ЗЫ. А если так:
          u'span[@title="Модификации"]/text()[0]'.encode('utf8')
          Ответить
          • > [0]
            > первый текстовый узел
            разве в xpath не с единицы индексация?
            Ответить
          • Делала так. Тоже падает в эксепшен примчем в где то в жопе мира в которую нету доступа посмотреть.
            Ответить
            • Не бывает таких мест, где нельзя посмотреть. Максимум, что может произойти - упрется в вызов Си функции. Но ее тоже можно найти, например через:
              # yum install libxml2-devel
              # debuginfo-install libxml2

              или какой менеджер пакетов используется. Дальше найти в, например, /usr/lib/python2.7/site-packages/ (или соответствующей версии) соответствующии биндинги и их можно либо запустить в отладчике (gdb, для этого нужны debuginfo) либо скомпилировать самому с записью в лог.
              Ответить
              • О, спасибо.
                Ответить
              • А в винде как?

                Вот сука, что меня бесит, этот ваш ёбаный фитон можно юзать без сишкоблядства?
                Ответить
                • НЕт, нет, нельзя.
                  Ответить
                • А Питон-то тут при чем? Если уж на то пошло, то нужно Си винить в том, что на нем написано много полезных библиотек. Сишные АПИ открыты для всех, кто умеет ими пользоваться. Практически на любом языке общего назначения есть возможность воспользоваться CFFI.
                  Другое дело непродуманые интерфейсы, типа как в С++ или Яве. Там волей-неволей приходится выбирать либо велик, либо dll/jar hell.
                  По поводу Виндовса - не скажу, т.как очень давно не приходилось пользоваться. И как-бы не вижу смысла им пользоваться для программирования, только в качестве платформы на которой конечный продукт должен работать. Но могу предположить, что Питон-модули можно собрать разными компиляторами, и в зависимости от этого и отладочный механизм будет разным.
                  Ответить
                  • Притом, что
                    - для того, чтобы знать жаву, нужно знать жаву.
                    - для того, чтобы знать питон, рано или поздно придется разбираться в си, потому что часть написана на си, потому что альтернативы этому нету - питон слишком тормознут и динамичен.

                    >По поводу Виндовса - не скажу, т.как очень давно не приходилось пользоваться.
                    Еще один. Ну понятно, питоноблядь же.

                    >И как-бы не вижу смысла им пользоваться для программирования, только в качестве платформы на которой конечный продукт должен работать.
                    Так именно с этим у него и проблемы. Как ошибки на клиентских машинах отлаживать будем? Бля, с таким отношением к винде виндузятникам надо повально юзать дотнет.
                    Ответить
                    • > Как ошибки на клиентских машинах отлаживать будем?
                      Просить сохранить крешдамп (или сохранять его автоматом) и копаться в нем какой-нибудь вижуалкой. Ну или пытаться воспроизвести на своей виндовой машине. Как еще то. Кто тебе даст отлаживаться на клиентской машине...

                      Но с тобой я согласен, у уважающего себя девелопера должна быть виндовая машина (хотя бы виртуалка), причем желательно с разными версиями винды. Кросскомпиляция из-под линуха - та еще срань, а в плане разбора полётов - вообще не вариант.
                      Ответить
                      • >Кто тебе даст отлаживаться на клиентской машине...
                        Самому воссоздать ошибку на винде.

                        >Но с тобой я согласен, у уважающего себя девелопера должна быть виндовая машина (хотя бы виртуалка),
                        Я хотел сказать не это, а то, что питон - вендовраждебное говно. Алсо на питоне часто пишется серверная хуйня.
                        Ответить
                        • > Самому воссоздать ошибку на винде.
                          К сожалению не всегда получается. Бывают настолько хитровыебанные сочетания сборок Windows XP 2025 от Васи-Долбоёба, каких-нибудь твикеров, вирей, антивирей, яндекс баров и рукожопого админа приходящего мальчика, что на нормальной машине тебе эту ошибку никогда в жизни не воспроизвести...
                          Ответить
                          • >>Бывают настолько хитровыебанные сочетания сборок Windows XP 2025 от Васи-Долбоёба, каких-нибудь твикеров, вирей, антивирей, яндекс баров и рукожопого админа приходящего мальчика, что на нормальной машине тебе эту ошибку никогда в жизни не воспроизвести...

                            +1000
                            Ответить
                          • >сборок Windows XP 2025 от Васи-Долбоёба
                            ССЗБ. Это проблемы любого вендо- (а возможно и прыще-) софта, и как-то с ними живут.
                            Ответить
                    • Вообще нет. Если захочется в Яве использовать сишную библиотеку, то прийдется, опять же, разбираться с Си. И ситуация не выдуманая: на Яве нет нормально работающего графического интерфейса, если хочется сделать хороший графический интерфейс на Яве - нужно пользоваться AWT, а за ним может быть и Си и С++.
                      Я не знаю, как в остальном обстоят дела, но предполагаю, что в более-менее нетривиальной программе пришлось бы использовать чужеродные модули. По аналогии с пи-инвоками в Сишарпе.

                      Все остальное - вообще бред уровня здешних троллей, просто набор слов без смысла.
                      Ответить
                      • Вот за AWT и Swing, емнип, сишного кода почти нет. Ну кроме низкоуровневого кода, которая запиливает top-level окошки да Graphics2D с его друзьями. Все awt/swing контролы - чистокровная жаба. О не top-level окошках графическая подсистема операционки вроде даже и не подозревает...

                        Нативные контролы это все-таки SWT, через который рисуется морда эклипса.
                        Ответить
                        • AWT юзает родные контролы, так что там как раз биндинги к ОС и графическим библиотекам.
                          Swing всё рисует сам в жабе, оттого тормознут и убог.
                          SWT это просто реинкарнация AWT.
                          Ответить
                          • > AWT юзает родные контролы, так что там как раз биндинги к ОС и графическим библиотекам.
                            Хм, значит я ступил ;) Спасибо.
                            Ответить
                            • Вот тут чуть подробнее расписано
                              http://stackoverflow.com/questions/408820/what-is-the-difference-between-swing-and-awt
                              Ответить
                              • Хм, ну я только со swing'ом возился, awt даже не трогал. Вот мне и казалось, что awt это древнее подмножество swing'а. Спасибо за разъяснения.
                                Ответить
                      • >Если захочется в Яве использовать сишную библиотеку, то прийдется, опять же, разбираться с Си.
                        Как часто такое желание появляется? Гуй, наверно, главное исключение. А в питоне это - необходимость. Вся стандартная библиотека на нем.

                        >Все остальное - вообще бред уровня здешних троллей, просто набор слов без смысла.
                        Тефлоновые трусы надень, чтобы не пригорало.
                        Ответить
                        • Базы данных, в Яве вобщем-то нужно использовать JDBC - обертка написаная для драйверов, которые в свою очередь написаны, как правило, на Сях.
                          Пример нетривиального использования: хочется добавить аггрегатную функцию к Сиквелайту (Сиквелайт предусматривает такую возможность). Нужно будет написать собственно функцию на Си + обвязку для Явы.

                          Хочется в многопроцессорную архитектуру: MPI/OpenMP - опять же, интерфейсы есть для Си и Фортрана, на Яве нужно использовать обвязки.

                          Какую-нибудь мат. библиотеку типа ЛАПАКа - опять же.

                          Я на Яве очень мало пишу. Да и на Питоне не часто...

                          По моему опыту (очень ограниченому), реализовывать обвязки на Яве сложнее чем для Питона, и нет такой сильной мотивации ввиду другой области применения. Да и есть еще такой момент, что огромное количество програмистов на Яве элементарно не знают, даже не то, как это сделать, а что это в принципе возможно. Типичное решение на Яве для работы с инородным модулем - написать СОАП сервер и общаться с ним по ХТТП, пересылая друг другу ХМЛи. Потому что так в институте учат.
                          Ответить
                          • > обертка написаная для драйверов, которые в свою очередь написаны, как правило, на Сях
                            Эм, а к каким СУБД нынче поставляются не pure java дрова? Ну если не брать в расчет встраиваемые базы типа sqlite и беркли.
                            Ответить
                          • > Потому что так в институте учат.
                            Совсем не поэтому... Жаба это ж энтерпрайз, тут другие приоритеты ;)

                            1) Можно запустить инородный модуль где-то на другой машине, на виртуалке, в песочнице, под другим юзером - где душе угодно. Имеет смысл, например, если модуль проприетарный и виндовый, а жабоконтейнер крутится на линухе.
                            2) Инородный модуль через внешний протокол никак не может крашнуть жабомашину (что он или его обертка с удовольствием сделают при интеграции через JNI).
                            3) Масштабируемость - покупаем больше машин, поднимаем больше экземпляров сервиса...
                            4) Удобство при смене технологии - надо переписать на другом языке - да пожалуйста, XML парсеры-генераторы везде есть.

                            P.S. Естественно, я не предлагаю приделывать SOAP интерфейс ко всякой мелочи, которую вызывают по миллиону раз в секунду в тесном цикле :) Всему свои технологии.
                            Ответить
                          • А вот насчет прикручивания мат. библиотек и MPI к жабе я в сомнениях. Если оборачивать на низком уровне - мостик между сишкой и жабой убьет всю производительность, и смысла в этом никакого не будет.

                            Так что остается писать более-менее законченный расчетный модуль целиком на сишке\фортране, и цеплять его к жабе через soap :)
                            Ответить
                            • По поводу MPI - пайплайн может играть а может и не играть роли. Вычисления могут и сутки занимать, смотря что считать.
                              Ну вот пример, Нео4Ж, у которого АПИ = ХТТП сервер. В таком виде он нахер не нужен, т.как по производительности быстрее на калькуляторе посчитать.
                              По поводу JDBC - ну так все равно кроме случаев, когда база данных написана на Яве, как-то нужно налаживать связь с Сишным / С++ кодом. Будет ли эта связка написана на Яве или на Си ситуации не изменит, только перенесет интерфейс с нативным кодом в другое место.
                              Кроме того, если уж мы взяли к примеру базы данных. На Яве просто нет возможности сделать некоторые вещи, которые возможно, например, в Монго на ж.скрипте, Киотокабинете и Редисе на Луа, БелойБД на питоне, для чего, опять же нужно было бы писать обвязки для Явы.
                              Ответить
                              • > как-то нужно налаживать связь с Сишным / С++ кодом

                                Драйвера баз данных всё-же обычно общаются через сокет по бинарному протоколу. Реализации JDBC через ODBC мост имели место быть, но они всегда считались костылём и имели неприемлимую производительность.

                                По сути можно судить о том, реализован ли драйвер на чистой жабе, по наличию этого драйвера в maven central.
                                Ответить
                                • Судя по комментам выше, wvxvw клонит в сторону исполнения кода и запиливания UDF на стороне сервера СУБД (ну или прямой работы с embedded базой). На это как бы намекают фразы про сишные функции в sqlite, луа в редисе и жс в монге.
                                  Ответить
                                  • жабу для таких целей начали использовать задолго до появления редисов и прочих монг
                                    http://docs.oracle.com/cd/A97630_01/appdev.920/a96590/adg11rtn.htm#1001690
                                    
                                    http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z9.doc.java%2Fsrc%2Ftpc%2Fimjcc_javaroutines.htm
                                    
                                    http://www.h2database.com/html/features.html#user_defined_functions
                                    Ответить
                              • > кроме случаев, когда база данных написана на Яве, как-то нужно налаживать связь с Сишным / С++ кодом
                                Дык все клиент-серверные реляционки (да и даже та же монга и редис) работают через сокеты/пайпы. Отсюда и Type 4 дрова на чистой жабе, которым сишка вообще нахер не нужна... И интерфейс с нативным кодом уже есть - сокет, на котором СУБД слушает запросы.

                                А вот если речь идет о прикручивании user-defined функций на жабе к серверу СУБД или о запуске скриптов прямо в контексте этого сервера - тут другое дело. Эффективно пристроить жабу с этой стороны, имхо, почти нереально ;(
                                Ответить
                                • Фигасе... ODBC оказался медленнее сокета? Как так получилось? Серьезный вопрос, я как бы не в курсе.
                                  Я вот недавно задался целью написать обвязку для БелойДБ (на КЛ). Отличительная особенность этой БД в том, что хранилище находится в общей памяти. Вот реализовал я необходимые Сишные функции и дальше не могу придумать хорошего способа ими воспользоваться :( Очень хочется обойтись без сериализации, ну или по крайней мере без сериализации в процессе обмена данными с БД. Хранить-то все равно как-то нужно.
                                  Ответить
                                  • > ODBC оказался медленнее сокета.
                                    Ну во-первых на локалхосте сокеты работают через общую память, и не такие уж и медленные (а на другом хосте кроме сокета вариантов тупо нет).

                                    А во-вторых те самые одбц дрова один хрен работают через тот же сокет ;) Ну мне не попадались умеющие в шаренную память... Да еще и лишние преобразования добавляют...

                                    Поэтому вполне логично, что от выпиливания ненужной прослойки скорость стала выше...

                                    > обойтись без сериализации
                                    А как? В лиспе же всяко нельзя трогать внутренние представления объектов... Поэтому как не крути, а одно преобразование всяко нужно.
                                    Ответить
                                    • Ну их трогать как-раз таки не нужно, все можно сделать вызывая Си функции. Объекты не будут располагаться в памяти Лиспа, а в памяти Сишной программы. Проблемы на уровне реализации возникают с тем, что БД может хранить по-настоящему только 32-битные инты, все остальное как-нибудь сериализуется уже в самой БД. Т.е. например, флоат записывается как инт-указатель + байты самого флоата.
                                      Дальше, даже если закрыть глаза на очень ограниченый набор типов (кроме флоатов, строк и блобов по-сути ничего и нет), чтобы полноценно с ними работать нужно:
                                      - функции в самой БД (осуществимо но...).
                                      - иметь какую-нибудь обобщающую стратегию, как это делать. Например, питоновская реализация обвязки предлагает использовать "запрос" + "курсор", соответственно с накладными расходами на то и другое, ну и запрос можно сформулировать только используя небольшое (всего штук шесть) количество функций умеющих сравнивать записи.
                                      - знать, какие свойства и структуры могут оказаться полезными. Например, можно легко построить полный (complete) граф - но толку от такой структуры никакого. Можно попытаться написать функцию ищущую spanning tree - но нужно ли это для решения каких-то реальных задач, и какого рода данные могут быть в таких задачах?

                                      На самом деле, последний вопрос самый сложный, т.как у графов ну очень много разных свойств, и понять какие из них фундаментальные и нужные, а какие - бесполезные очень тяжело...
                                      Ответить
                                    • >Ну во-первых на локалхосте сокеты работают через общую память, и не такие уж и медленные (а на другом хосте кроме сокета вариантов тупо нет).
                                      Пруф?
                                      Ответить
                                      • > Пруф?
                                        А не находится. Скорее всего я как всегда нагнал ;(

                                        Насчет скорости: когда я тестил передачу потока - получалось 12-18Гб\с на локалхосте. Куда уж быстрее? latency не замерял.
                                        Ответить
                                        • Скорость передачи не очень интересна. Удручает дургая скорость. Типичная связка с БД десериализирует данные:
                                          - первое чтение из хранилища в структуры языка БД.
                                          - результат запроса из языка БД в язык драйвера.
                                          - из языка драйвера в какой-нибудь специальный формат, который дальше переводится в структуры прикладной програмы.
                                          - прикладная програма это все еще дальше во что-то переделывает, типа какого-нибудь ХМЛ.

                                          Это не страшно, когда на каком-то этапе данных становится совсем немного (типичный веб, для формирование ХТМЛ страниц и т.п.) но если это, например, поиск молекул белков, то такая схема работы совсем плохая.
                                          Ответить
                                • > А вот если речь идет о прикручивании user-defined функций на жабе к серверу СУБД...

                                  что-то оракл совсем другого мнения - процедуры пишутся либо на pl/sql, либо как раз на жабе
                                  Ответить
                                  • > оракл
                                    а также как минимум ibm и авторы h2, пруфлинки выше по треду
                                    Ответить
                                    • > h2
                                      Ну h2 вообще на жабе, на чем там еще мутить хранимки ;)
                                      Ответить
                                      • > на чем там еще мутить хранимки ;)

                                        На всём, что поддерживает JSR-223?
                                        Ответить
                                        • > На всём, что поддерживает JSR-223?
                                          А есть какие-нибудь движки, поддерживающие этот стандарт, кроме изкоробочного rhino?
                                          Ответить
                                          • > А есть какие-нибудь движки

                                            Полно. На вскидку Groovy, Clojure, JPython, JRuby, MVEL.
                                            Ответить
                          • Че-то ни с чем из тобой указанного я еще не сталкивался, а вот с необходимостью написания сишных модулей на питона столкнуться очень легко, любая работа с двоичными данными.
                            Ответить
                      • > использовать сишную библиотеку
                        Не слишком ли это небезопасно? Как я понимаю, кривая библиотека может положить весь процесс/явомашину.
                        Ответить
                        • По моим наблюдениям библиотеки на Яве часто страдают утечками памяти, и тут уже возможность поймать ошибку ничем не поможет. Все равно перезагружать програму.
                          Ответить
                          • >По моим наблюдениям библиотеки на Яве часто страдают утечками памяти
                            Орлы? Классические утечки памяти в жава коде невозможны.
                            Ответить
                          • >библиотеки на Яве часто страдают утечками памяти
                            Тролсто
                            Это реально серъезная проблема явы - код написанный на ней постоянно страдает утечками памяти, в сишкокоде, например такое практически невозможно.
                            На яве практически невозможно написать библиотеку без утечек, другое дело лисп, луа, сишка и питон.
                            Ответить
                            • А вот вы будете удивлены, но не смотря на иронию, в этом есть большая доля правды. Ява, в отличие от других вышеперечисленых располагает к написанию програм зависящих от глобального или локального, но комплексного состояния потому что в ней нет обычных функций - все функции привязаны к данным.
                              В Си есть тенденция избегать выделять память где угодно кроме стека, т.е. только на время выполнения функции. А в Яве рантайм заточен под выделение памяти в куче, в том числе и особенно для недолго живущих небольших объектов. Это с одной стороны делает написание кода проще, а с другой, просто не заметить ошибку, когда какие-нибудь небольшие объекты не удаляются мусорщиком. Иногда, чтобы обнаружить такую ошибку програма должна выполнятся несколько дней, что в тестовых условиях тяжело воспроизвести.

                              Я, например, еще не видел, чтобы Эклипс проработал больше одной-двух недель без перезапуска. Идея может сейчас чуть по-лучше стала, но еще два года назад ее нужно было перезапускать как минимум раз в день.
                              Ответить
                              • > небольшие объекты не удаляются мусорщиком
                                Да причем тут мусорщик. Объекты не удаляются по одной причине - если мудак, писавший либу, где-то закешировал ссылку на этот объект и потом забывает ее занулить\заменить\удалить. При таком подходе оно утечет в абсолютно любом языке.
                                Ответить
                                • Британские учёные выяснили, что 146% OOM-ов случается всего по 2 причинам:
                                  1. Какой-то умник решил изобрести свой кэш, а вот про слабо-мягкие ссылки никогда не слышал. Лечится пинком и использованием нормальных кэшей.
                                  2. Кто-то решил загрузить в хэш-табличку всё содержимое базы данных/индексов. Лечится лимитированием используемых ресурсов: пакетной потоковой обработкой / настройкой отношения Xmx и внутреннего буфера.
                                  Ответить
                                  • А еще в Яве есть ресурсы, которые нужно явно освобождать, типа тредов, подключений к чему бы то ни было, и т.п. другими словами все, что явно или неявно создает глобальное состояние програмы.
                                    Явовский подход к решению любых задач: нафигачить кучу синглтонов, которые что-то создают, что-то кешируют, неявно формируя глобальное состояние, и тут очень легко пропустить какую-нибудь настройку по умолчанию, которая приведет к тому, что какие-нибудь объекты, зачастую вообще не известные програмисту использующему эти синглтоны будут где-то зачем-то накапливаться.
                                    Ответить
                                    • > А еще в Яве есть ресурсы, которые нужно явно освобождать

                                      Можно подумать, это только в "Яве". В любом практически применимом языке (пока не рассматриваем обратимые вычисления на квантовых компьютерах) есть ресурсы, которые нужно освобождать. Это вещь, которая обычно не зависит от языка. Различаются лишь подходы к управлению ресурсами.
                                      Ответить
                                    • > нафигачить кучу синглтонов
                                      Синглтон, кстати, даже в жабе считается говпаттерном.

                                      И сишники тоже так и не научились не юзать глобальную херню... Вон тот же v8 сколько лет не мог создать 2 инстанса скриптового движка в одном процессе... А вся стандартная сишная либа насквозь пронизана статическим говном. Да, его где-то закостылили через thread-local, где-то обвешали мутексами, и оно даже стало потокбезопасным, но говно то осталось.

                                      Так что тут не жаба виновата, а ленивые быдлокодеры, которым не хочется передавать контекст явным образом или юзать IoCC...
                                      Ответить
                                      • Поэтому в любой нетривиальной Ява-программе есть Спринг, или эквивалентный фреймворк в котором эти синглтоны с умной мордой замели под ковер.
                                        Ответить
                                      • Мне непонятно, в чём проблема синглетонов в отношении кэшей. Разве кому-то хочется иметь 2 одинаковых объекта с 200Мб кэшем?

                                        Проблема именно в том, что кэш не очищается, синглетоны тут не при чём.

                                        К примеру, недавно встретил занятную реализацию кэша: кэш зачитывается целиком по таймауту. Т.е. на коллекцию заводится отдельный тред, которые просыпается каждые N минут и зачитывает всё содержимое в память.
                                        Ответить
                                        • > Мне непонятно, в чём проблема синглетонов в отношении кэшей.
                                          Мне тоже, кеши тут вообще не при делах ;) У синглтонов полно других проблем. Причем абсолютно тех же самых, что и у обычных глобальных переменных.
                                          Ответить
                                          • А ещё средний питух не умеет в написание многопоточных синглтонов
                                            Ответить
                                        • Приведу пример: тривиально реализованое кеширование подготовленых выражений для Сиквелайта обламывается, когда с базой начинают активно работать много потоков. Т.е. до лока в БД даже не доходит, и ошибки появляются изза того, что кеш реализован как синглтон и два конкурирующих потока пытаются с этим кешем работать. Но это мой частный случай. Есть видео, где Одерский рассказывает о том, как они переписывали компилятор Скалы и о проблемах вызваных синглтонами в его первой редакции.
                                          Ответить
                                          • > кеширование подготовленых выражений для Сиквелайта обламывается, когда с базой начинают активно работать много потоков

                                            и виноваты в этом, разумеется, синглтоны, а не намеренно отсутствующие локи?

                                            "If you use the sqlite3_prepare() API to create prepared statements, each prepared statement is considered to be a part of the database connection from which it was derived. So you cannot run two prepared statements originating from the same database connection in different threads at the same time."
                                            https://www.sqlite.org/cvstrac/wiki?p=MultiThreading
                                            Ответить
                                  • >2. Кто-то решил загрузить в хэш-табличку всё содержимое базы данных/индексов.
                                    >Кто-то решил загрузить в память мир
                                    Возможно на любом языке, нет?
                                    Ответить
                                    • > Возможно на любом языке, нет?
                                      Ну так британские учёные нигде и не написали, что их исследование относится только к Java.
                                      Ответить
                                • А в чем противоречие: если закешировал, то мусорщик не удалит.
                                  Естесственно, механизм один и тот же в любом языке. Речь не о механизме, а о разных подходах к решению тех же задач.
                                  Ответить
                              • >> Ява, в отличие от других вышеперечисленых располагает к написанию програм зависящих от глобального или локального, но комплексного состояния [...]
                                Зачем так много букв? Напишите прямо: ява - говно, в отличие от флеша, например, который никогда не течет и не падает.
                                Ответить
                                • Нет, Ява такое же говно, как и Флеш. Течет и падает по тем же причинам.
                                  Ответить
                            • > 3.14
                              $ cal
                                   March 2014       
                              Su Mo Tu We Th Fr Sa  
                                                 1  
                               2  3  4  5  6  7  8  
                               9 10 11 12 13 14 15  
                              16 17 18 19 20 21 22  
                              23 24 25 26 27 28 29  
                              30 31

                              Поздравляю с профессиональный днём
                              Ответить
            • >где то в жопе мира в которую нету доступа посмотреть.
              Это как? :)
              Ответить
    • Гейдевку видно по копипасту.

      Или выкини двойку нахуй, или хотя бы import unicode_literals
      Ответить
    • i.extract().index(u'Модификации')
              item.modification = i.select('span/text()').extract()[0]

      Что делает первая строка? Это типа if? :) Или побочно-ориентированное программирование?
      Ответить
      • Я кажется понял. Первая строка там для того, чтобы вызвать ошибку. Если будет ошибка, то следующий за ней код не выполнится, и свойство не поменяется. Т.е. в исходном документе, очевидно может быть три разных узла в одном и том же месте, в зависимости от имени аттрибута, значение этого узла нужно назначить какому-то свойству.
        Но я не знаю, что это за парсер такой. Вроде не lxml, а суп вообще вроде ХПуть не понимает.
        Ответить
        • Парсер туалетной бумаги, унитаз по-другому.
          Ответить
        • Ну я ж и говорю - типа if
          Ответить
        • По задумке я должна все делать через scrapy. Но что то он какой то укуреный. Это его низкоуровневый кусок.
          Ответить
          • scrapy разве не через lxml работает?
            Ответить
            • Ага, через оно.
              Сегодня попробую сделать нормально, бо старшой из отпуска прийдет.
              Ответить
              • Теперь давай сиськи показывай, халявщица.
                Ответить
                • Минуснул по ошибке. ;(
                  Прости..
                  Ответить
                • а ты чё, сисек не видел?
                  тоже мне, мечта жизни - поглазеть на сиськи деушки, которая тебе никто.

                  увидеть сиськи и умереть.
                  Ответить
      • Иф не нужен, потому что всё можно сделать через ж кидание зиги исключения и try.
        Ответить
    • Ответить
    • Виноват, можно еще раз ссылку на свиток? Я хотел чуть поправить, чтобы скрывать комменты в стоке, но с моим знанием JS только испортил его, а ссылку удалил(
      Ответить
      • Товарищ минуснувший, подлечите или нервы свои, или голову (что в принципе одно и то же).
        Ответить
        • Кого-то так раздражают мои посты? Только мои посты, или вообще все, после трудного рабочего дня? Пусть этот человек напишет мне в личку: [email protected]
          Ответить
          • Вон сверху олдфагов минуснули по -1..-2. Это систематисеская погрешность.
            Ответить
      • http://gvforum.ru/viewtopic.php?id=1173
        Ответить

    Добавить комментарий