-
Posts
1,770 -
Joined
-
Last visited
-
Days Won
9
Content Type
Profiles
Forums
Calendar
Store
Everything posted by cyklop77
-
я категорически настаиваю на том, что самые тренированные мозги у бомжей. у них ведь деятельность не проснуться->умыться->сходить на работу в офис, помахать кувалдой. у них каждый день решается вопрос жизни и смерти: где достать поесть, как найти тёплое место для ночёвки, где достать тёплую одежду для зимы, как уберечься от собак и т.д. а это посложнее вёрстки или программирования. и кстати, заметьте, у них нет гугла такая активная деятельность очень эффективно прокачивает нейронные сети
-
помогите пожалуйста исправить xpath-выражение поиска функция parse_catalog_goods() следующего скрипта ищет элементы <a> первого уровня вложенности(то есть собирает информацию о всех товарах каталога). если каталог в будущем будет содержать <a> более высоких уровней вложенности, то parse_catalog_goods() не сможет собирать всю информацию о товарах каталога import pprintimport requestsimport lxml.etreeimport lxml.htmldef get_catalog(url): try: req = requests.get(url) except Exception: print('Error open. ') else: html = req.text doc = lxml.html.document_fromstring(html) listCatalog = doc.xpath('//section[@class="catalog"]/ul') if listCatalog: return listCatalog[0] else: print('Error find catalog')def parse_catalog_categories(catalogMenuList): listA = catalogMenuList.xpath('li/a') dictCategories = {} for elem in listA: href = elem.xpath('@href')[0] text = elem.xpath('text()')[0].strip() dictCategories[text] = href if not dictCategories: print('Error. dictonary is empty') else: return dictCategoriesdef parse_catalog_goods(catalogMenuList): listA = catalogMenuList.xpath('li/ul/li/a') #??????????????????????????????? print(listA[0]) dictGoods = {} for elem in listA: href = elem.xpath('@href')[0] text = elem.xpath('text()')[0].strip() dictGoods[text] = href if not dictGoods: print('Error. dictonary is empty') else: return dictGoods def put_xml(dictCategories, parentTag, childTag): parent = lxml.etree.Element(parentTag) for name, link in dictCategories.items(): child = lxml.etree.Element(childTag) child.text = name parent.append(child) xml = lxml.etree.tounicode(parent, pretty_print=True) if not xml: print('Error xml tree build') else: return xml def record_xml(xml, fileName): try: with open(fileName, "w") as file: file.write(xml) except Exception: print('Error record', Exception)if __name__ == "__main__": url = 'http://first-store.ru/' listCatalog = get_catalog(url) #dictCategories = parse_catalog_categories(listCatalog) #pprint.pprint(dictCategories) #xmlCategories = put_xml(dictCategories, 'categories', 'category') #print(xmlCategories) #record_xml(xmlCategories, 'categories.xml') dictGoods = parse_catalog_goods(listCatalog) #pprint.pprint(dictGoods) xmlGoods = put_xml(dictGoods, 'goods', 'item') print(xmlGoods) record_xml(xmlGoods, 'goods.xml')извиняюсь за много букв psнужно выбрать именно товары, а не названия категорий товаров(которые тоже заключены в <a>)
-
Сколько надо сверстать макетов, что бы хорошо набить руку?
cyklop77 replied to DivMan's question in HTML Coding
уж больно много неизвестных в вашем вопросе) в любом случае 30 макетов - мало -
полезно то полезно. только время то одно, а технологий много
-
натив это java?..
-
я тоже, если никто не против. на питоне возможно разрабатывать что-нибудь под мобильные платформы?
-
посоветуйте пожалуйста софт для тестирования простейших веб-сценариев python под windows я уже намучился с конфигурацией open server, denwer, apache+mod_python и, если это возможно, хотел бы использовать что-нибудь попроще. по крайней мере в период изучения основ
-
насколько я знаю, питон по возможностям не уступает пхп. но так же годится для системного программирования(почти в каждом дистрибутиве линукс он есть). к тому же заметно лаконичнее
-
а я считаю, что основная причина посещения офиса всё таки возможность развития в команде. профессионально расти в одиночку могут очень и очень немногие
-
ну что же спасибо за критику. отвечу по пунктам: 1) мой косяк 2) это к вёрстке не относится. я посчитал, что заказчику не важно раз в ТЗ не прописано(картинки, которые открываются мутные тоже по этой причине) 3) мой косяк 4) чем? мне помогают быстро ориентироваться. если в будущем найду отрицательные качества у них(которые перевешивают это удобство), то использовать не буду 5) пустые я для порядка прописываю(у меня строгая иерархия). а впрочем, пожалуй, откажусь теперь от них - действительно избыточность 6) по поводу каскадов я писал выше. в больших проектах перед сдачей я каскады урезаю FF-плагином. да и вообще код минифицирую и кладу рядом исходник(с каскадами который). при этом подключен к странице минифицированный css-файл сайт сделан не на бутстрапе. от бутстрапа подключил только всплывающее окно(то есть сам бутстрап НЕ подключен) кстати если вы вот про это: .nav_top_inner ul li span {min-height: 22px;display: block;padding-top: 9px;padding-bottom: 9px;background: #151513;cursor: pointer;color: #fff;text-decoration: none;text-align: center;font: 16px arial, sans-serif;то там валидатор будет ругаться, если в li поместить div
-
спасибо. в общем согласен. но на больших проектах я длинные селекторы сокращаю(у FF есть специальный инструмент), а здесь решил так оставить
-
...как бы и оценивать особо нечего - простая визитка. но всё таки буду благодарен за отзыв о вёрстке исходник
-
я начинал по python от специалиста смотреть, но не выдержал. даже ускорение скорости воспроизведения в 2 раза не помогло. лектор по делу всё рассказывает, но в его повествовании столько воды... какие-то истории из своей жизни, присказки и т.д. пришлось пойти доку читать. хоть и на английском она, но быстрее пошло не знаю, может по другим предметам другая ситуация...
-
ребят, вы про разные вещи говорите
-
на адаптивном сайте расположение блоков и размер элементов блока(шрифты, картинки и т.д.) меняется в зависимости от ширины экрана и типа устройства но ты лучше бы отдельную тему создал для этого вопроса
-
у попова цель не научить, а продать товар. соответственно рассказывается только о "верхах" и часто предлагаются далеко не лучшие практики, рассчитанные на то, что клиент соберёт конструктор лего и остановится на этом вообще в подобных курсах часто встречается просто пересказ документации с видеорядом) хорошо ещё, что их все скачать можно сейчас бесплатно. а то ведь раньше народ заказывал за деньги кстати хорошо, что тему апнули. как-то она сдулась быстро слишком. давайте продолжать) предлагаю описать несколько простейших действий по проверке вёрстки на жизнеспособность. можно например по окончании работы попробовать добавить 5-10 новых пунктов в меню и посмотреть на результат
-
я думаю, что такой вопрос может встать, если дизайнер, например, передаёт изображения, которые должны быть с прозрачным фоном в .jpg. в незначительных по важности случаях(как например с форматом иконок) не нужно его беспокоить а вообще обязан или нет, это решает в каждой организации руководитель. стандарта нет
-
подскажите пожалуйста возможно ли реализовать на web-странице подсветку областей географической карты при наведении курсора(без использования flash)? например дана карта России, на ней около 80 регионов. границы регионов, как понимаете, ломанные или может быть посоветуете готовый скрипт, если он существует вообще
-
насколько я вижу, у вас он уже "прибит к низу"
-
ребят, помогите пожалуйста разобраться с инициализацией объектов в tkinter, на python.su молчат скажите пожалуйста зачем при создании графических интерфейсов при помощи tkinter принято наследовать класс от Frame и т.п.? вот классический пример кода, который используется почти всегда:import tkinterimport tkinter.messageboxclass Quitter(tkinter.Frame): def __init__(self, parent=None): tkinter.Frame.__init__(self, parent) self.pack() widget = tkinter.Button(self, text='Quit', command=self.quit) widget.pack(side='left', expand='yes', fill=tkinter.BOTH) def quit(self): ans = tkinter.messagebox.askokcancel('Verify exit', "Really quit?") if ans: tkinter.Frame.quit(self)if __name__ == '__main__': Quitter().mainloop() по моему можно обойтись и без наследования. например так:import tkinterclass But_print(): def __init__(self, parent): self.but = tkinter.Button(parent, text = 'press me', command = lambda: self.press(parent)) self.but.pack() def press(self, parent): parent.destroy()root = tkinter.Tk()root2 = tkinter.Tk()obj = But_print(root)obj2 = But_print(root2)root.mainloop() скажите пожалуйста где я не прав и почему использовать наследование важно? какие плюсы это даёт? psпримеры немного разные, но не в этом суть. главное в том, что возможно реализовать функциональность, которую можно использовать повторно
-
ну почему же странно? здесь на форуме всё таки водятся дизайнеры, могут покритиковать...
-
не дизайн, но напрягло это после отправки пустой формы. хоть и нотис, нельзя такое перед посетителем вываливать и в чём смысл появления рамок при наведении в разделе Контакты? чтобы заведомо туповатый посетитель не перепутал очевидные вещи? здесь http://www.designprof.com.ua/menus/view/nataliya_aleksandr_vovk я обломался когда, проводя курсором над фото наталии, увидел ссылочный курсор так как после клика ничего не произошло. и кстати alt у этой картинки "Дизайнер Владимир Сапьян" >_<
-
не могу не поделиться тем, что я сегодня с утра увидел на фрилансим. тыц заказчики совсем берегов не видят уже