123ksn
Если честно, то я надеялся всё же увидеть реальный вариант решения через .decompose()
Понимаешь, если я буду сидеть и всем писать тут коды, то я себе не смогу писать коды, потому что всё моё время будет занято чужими кодами, а в данный момент я каждый день разрабатываю себе приложение для смартфона на языке Java и мне нужно себе коды писать. На каждый кусочек этого небольшого, но полезного и нужного приложения уходит часа по два, а таких кусочков надо написать где-то штук тридцать, и я уже написал примерно двадцать. Естественно, я не буду тебе код писать, потому что ты тут не один, и придётся им всем писать коды. Я вчера поставил это приложение в смартфон, а сегодня надо будет в нём делать экраны, чтобы при переворачивании смартфона всё правильно расставлялось на экране и кнопки приложения не вылазили за края экрана. Но я даю тебе удочку, чтобы ты научился сам писать себе всё. В этом и есть функция форума. Человек приходит нулём, а уходит наученным. Поэтому есть смысл тебе вообще писать. Ты научишься и будешь делать всё сам. Если я напишу тебе код, то 1) я впустую потеряю своё время, 2) ты ничему из него не научишься, 3) а потом у тебя возникнет следующая подобная задача и ты снова, как желторотый цыплёнок, придёшь на форум и попросишь снова для тебя код написать, червячка тебе положить, потому что сам ты не можешь это сделать, так как надо учиться сначала делать это.
123ksn
Я попытался перевести тему разговора в конструктивное русло, “прикрывшись” Линусом, но и здесь, к сожалению, Вы смогли увидеть только грамматическую ошибку.
Это не грамматическая ошибка. Это ты, не зная как и что называется и кто и что когда говорил, выступил таким знатоком типа. То же самое касается этих кодов. Ты не понимаешь, что тебе говнокод написали, но ты радуешься и называешь его гениальным. Ладно, допустим код подходит тебе как-то каким-то там образом, но завтра у тебя возникнет следующая задача по парсингу (они, знаешь, всегда парами ходят; где одна, там и вторая), и этот говнокод, естественно, к ней не подойдёт, потому что у него нулевая переиспользуемость, и ты что сделаешь? Естественно, топик создашь, здесь, там, повсюду, везде будут эти топики.
123ksn
Я, например, люблю учиться по сложному, но хорошо и правильно комментированному коду.
Учиться надо по книжкам. А там и код есть обычно, но не в виде говнокода, а отточенный и проверенный кучей людей, которые понимают в этом. Ты, наверное, не в курсе, но говнокод тоже бывает и комментированным вдоль и поперёк, и таким типа умным на вид. Новичок такой говнокод не поймёт и не распознает его качество. Но вот качество его даст о себе знать рано или поздно. Когда он будет где-то использоваться, вдруг выяснится, что в нём есть баг. Только вот баг этот исправить будет нельзя, потому что код сформирован так, что баги в нём исправляются только путём переписывания этого кода полностью с самого начала.
123ksn
Приведу его здесь (автор Gdez).
Ну, он вообще никакой. Там другой парень Skryp хоть что-то вменяемое выдал. Но и его вариант мне не нравится. Кусок html-кода, относящийся к вакансии целиком, он нашёл, но дальше-то надо разбивать этот блок на б
ольшие части, а не пытаться сократить путь. Не состоит она только из vacancy__item'ов, там данные вперемешку идут, поэтому и надо сначала провести разделение на данные вакансии и описание вакансии, а данные вакансии надо потом снова делить. И функций у него нет, поэтому всё это быстро превратится в свалку в скором времени.
Ты знаешь, я когда-то писал парсер подобный, только он не одну вакансию парсил, а примерно 30000 вакансий, накопившиеся за несколько лет в той базе данных, из которой сайт их отображал потом на своих страницах при их открытии. Ну, и как ты думаешь, они были все одинаково записаны на сайте этом? Ничего подобного! Там были и вакансии, у которых удалены были многие поля, поэтому у них нельзя было найти там поле какое-нибудь типа “опыт работы”, потому что это поле было опцией на сайте и человек его мог просто не указать. И вот у тебя идёт несколько тысяч вакансий, в которых везде есть поле “опыт работы”, а потом раз и идёт вакансия, в которой этого поля “опыт работы” нет. А скрипт-то один, он ищет поле “опыт работы” каждый раз. Вот мне пришлось это разгребать тогда. И тогда я написал вариативный парсер, который типизировал вакансии, типа если вакансия обладает такими-то признаками, значит у неё тип A и у вакансий типа A мы поле “опыт работы” ищем и берём его значение, а если вакансия обладает другими-то признаками, значит у неё тип B и у вакансий типа B мы поле “опыт работы” не ищем, потому что его там нет. Поэтому через дней пять у меня была огромная база данных на людей и компании, где, в отличие от сайта, можно было искать всё что угодно по каким угодно полям. На сайте искать нельзя было, не было такой возможности, а когда я с этого сайта все данные просто высосал своим скриптом, который работал как часы, я просто перегнал всё это из CSV-формата в SQLite-формат и в скором времени нашёл кучу людей со всей их историей работы и тому подобным, используя SQL-запросы.
Почему я всё это пишу? Потому что я хочу, чтобы ты знал, что мои советы тебе проистекают из этого опыта всего. Я не какой-то тупой мальчик, недавно окончивший школу или колледж там, который кроме учебных кодов не писал ничего в своей жизни и никогда не видел диких непослушных данных, ломающих всё своей иррациональностью, и поэтому шлёпает решения на уровне школоты, которая даже ЕГЭ по информатике сдавала и сдала там на четвёрку. Понимаешь, вот эта школота, она никогда не работала с реальными данными, которые устроены хрен знает как, которые нарушают все правила. Учебные задачи тем и отличаются, что в них все данные выверены и подобраны красиво, чтобы у учащегося всё в итоге получилось с ними. В реальной же жизни, вот как ты сейчас делаешь с этой вакансией, могут быть такие сюрпризы, что все эти школьные коды просто посыпятся на них и никакой школьник никак их под эту новую ситуацию внезапную не подравняет. Нужно реально иметь опыт по работе с дикими данными.
123ksn
Понимаете, я новичок и многие Ваши аналогии не могу понять. Т.е., по факту, всё своё красноречие и желание помочь, Вы потратили впустую.
Понимаешь, если я потратил желание помочь впустую, то это плохо не для меня, я-то всё своё взял при этом, но вот для тебя это, действительно, плохо будет, так как ты провозился с этим кодом и ничему не научился, ничего не вынес из этого всего. Потом ты попробуешь сделать такое же что-то, повторить то же самое, а оно у тебя не получится, потому что ты не научился. А кто тебя будет учить? Вот эти ребята тебя не научат, так как они сами не умеют. Я по их кодам вижу их уровень, что они изучали, докуда они это изучали и так далее.