Двач.hk не отвечает.
Вы видите копию треда, сохраненную вчера в 15:17.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image.png180 Кб, 660x440
че думаете о тестовом на джуна? еС ЧО компания из 40 человек, продающие шины, в общем не бигтех - 315050652 В конец треда | Веб
че думаете о тестовом на джуна?

еС ЧО компания из 40 человек, продающие шины, в общем не бигтех

-----------------------------
Благодарим Вас за отклик на вакансию "Junior Python Developer". Ваше резюме показалось нам очень интересным. Мы хотели бы пригласить Вас на интервью, после того как вы выполните тестовое задание!
Готовы!?

Техническое задание:
- Написать два любых парсера для сбора информации о ценах и остатках из любых интернет-магазинов;

- Каждый парсер должен собирать не менее 250 товаров в любой категории;

- Сохранять данные о названии и цене в файлы xls и csv на выбор;

- Названия товаров в файлах должны быть отсортированы по алфавиту (в прямом или обратном порядке в зависимости от аргументов командной строки);

- После завершения парсинга найти и вывести медианное значение для цен товаров в категории;

- Программа должна запускаться с параметрами командной строки.

Параметры командной строки:
- Выбор одного из двух парсеров для запуска;
- Выбор формата для сохранения файла;
- Выбор порядка сортировки имён товаров в итоговом файле;
- Выбор названия файла для сохранения.

Перед выполнением задания нужно отписаться мне о готовности выполнять и обозначить сроки!

После завершения нужно записать видео экрана с короткими комментариями по коду и результату работы.

По готовности видео, нужно заполнить анкету(ссылка на формы) и отправить видео и ссылку на код мне в телеграмм(8-XXX-XXX-XX-XX).

Если есть, что добавить в качестве конкурентного преимущества, пишите дополнительно мне так же в телеграмм - буду ждать!

Если вдруг задание покажется сложным, дайте мне обратную связь
2 315050691
Задание хорошее, если платят или есть гарантия что будет фидбек. Если нет - пошли они наледенец.
3 315050697
>>50652 (OP)
Ну думаю нормальная тренировка. Показывает твой уровень. Могут посадить куда нить в банк работать, как моего знакомого.
4 315050711
>>50691

>платят или есть гарантия что будет фи


нет, бесплатно офкорс и не факт что фидбек
5 315050730
>>50697
Там не банк, а буквально 40 человек с шинами, даже отзывов нет наххру
sage 6 315050808
>>50711
Ну если время есть, нет портфолио и срочно нужна работа любой ценой - можешь сделать и залить себе на гитхаб. Все равно задание делается меньше чем за день.
7 315050881
>>50652 (OP)
Есть мнение, что это наебалово, твои парсеры будут использоваться по прямому назначению, а сам ты пойдёшь наледенец. Ну типа откликнулась тысяча лохов, из них 700 написали парсеры озона и вулдбериса, остальные чё-то там ещё выбрали, и вот у тебя есть куча норм решений для поиска и сравнения цен на шины. Автоматизация, ёпта.

Ну сам подумай, нахуя в компании по продаже шин нужен питонист-джун?
8 315050901
>>50652 (OP)
ТЕБЯ ПРОСТО ИСПОЛЬЗУЮТ
9 315050912
>>50808
Ну лул, может ты мидл-сенька. Я хоть и имею опыт, но уже с пятницы копаюсь после работы вечером.

1) код нужно сделать модульно чтобы был расширяем, а так же на любой пук нужен класс, чтобы можно было вскрыть его и спиздить его под что угодно

2) надо написать максимально чисто

3) сделать тесты

в 1 функцию запилить как задачу это 1 вечер, но мы про принятие на работу и все таки культуру писать не печенье с молокомкод, а черный ящик написать надо

1 - parser py, верхний слой, а остальное идет корни
10 315051144
бамп
11 315051257
>>50652 (OP)
Ну, тип, нормальное задание.

Можно накидать костылей за пару часов, можно написать охуенный код в 20 строчек за пару дней.
12 315051290
>>51257

>охуенный код в 20 строчек за пару дней.


>>50912

>


>1) код нужно сделать модульно чтобы был расширяем, а так же на любой пук нужен класс, чтобы можно было вскрыть его и спиздить его под что угодно


>


>2) надо написать максимально чисто


>


>3) сделать тесты


>


>в 1 функцию запилить как задачу это 1 вечер, но мы про принятие на работу и все таки культуру писать не печенье с молокомкод, а черный ящик написать надо


>


>1 - parser py, верхний слой, а остальное идет корни

13 315051330
>>50881
Два чаю, сам пишу парсеры на фрилансе, там буквально в задании работа стоит минимум 100К за парсер. И главное найдут лохов которые это сделают.
14 315051559
>>50912
Я джун, на работе похожие задания. Делается такое очень быстро (пишу на шарпах). Такие же требования. Особо сложного нет в задании ничего, а эти требования это буквально стандарт для написания приложений, которые в принципе тебе даже не должны были расписывать, а в идеале ты сам должен был так писать с самого начала. Если тебе такое дается с трудом - повышай квалификацию как раз написанием таких тестовых заданий и надейся на фидбэк.
15 315051563
Нормальное задание, если не можешь такое решить, то ты даун и с тобой смысла общаться на собеседовании нет, потому что будет 1000 откликов без тестового задания и хз как отбирать людей в таком случае.
Если ты все же даун, но хочешь работу, то можешь решить при помощи чатгпт.
Само наличие тестового задания это норм, такую леденецню никто не будет у тебя воровать чтобы использовать в своих коммерческих целях, это задачка для мидла на день максимум (часа на 2-3 примерно).
На первую работу я решал алгоритмических 6 задачек на время до собеседования и без фидбека в случае неудачи.
16 315051746
>>51559

> которые в принципе тебе даже не должны были расписывать


а мне и не расписывали, я понимаю их
>>51563

>если не можешь такое решить, то ты даун и с тобой смысла общаться на собеседовании нет


послушный мальчик срыгни пожалуйста
>>51563

>задачка для мидла


мидл от джуна имеет разрыв глубокий, ты бы еще сеньку приплел
>>51563

>На первую работу я решал алгоритмических 6 задачек на время до собеседования и без фидбека в случае неудачи.


значит, у тебя просто лучше навыки были на тот момент. Но задачку я бы также в 1 функцию написал, как и эту программу, но надо под святые стандарты все распланировать. Коммерческая разработка отличается от того, чтобы написать вакуумный скрипт

>>51563

>никто не будет у тебя воровать чтобы использовать в своих коммерческих


там его на 2 сайта надо было расшарить. Думаешь, что магазин шин не хотят спиздить готовый проект, чтобы своих конкуретной просто прописать?
17 315051857
>>50652 (OP)
Ага ещё может бесплатно отполучать в подарок???
По сути ты им даёшь туторил, а кабанчик мы перезвоним. Вы че дибилы делать тестовые задании за бесплатно??? Пусть башляет деньги. Или показывай конечный результат. В натуре холопы. Когда мне говорят про тестовые надо сделать а их несколько. Уточняю . Если на знания языка без вопросов. А если таск идите ищите мамонта.
я люблю говнокод.webm3,9 Мб, webm,
1280x720, 0:26
18 315052067
>>50652 (OP)

>Python Developer

17362271187910.png61 Кб, 757x790
19 315052089
>>52067
Держи аниме девочка
20 315052094
Угараю когда на собеседование спрашивают про алгоритмы. Задаю встречный вопрос, а какие вы алгоритмы применяйте? Нууу пук сырынк не важно. Понятно, знайте если вам нужен алгоритмы, то вам нужен математик. Который лучше знает алгоритмы и объяснить кодеру как жто работает, а реализация кода с этим справится любая макакыч кнопка дав среднего уровня.
Я вам могу написать и рассказать банальные алгоритмы. Это не проблема . Хорошо поняли мы вам перезвоним. Лел.
21 315052110
>>52089
Чатджпти написал видно.
22 315052163
Питон это не язык проганья.
23 315052184
>>52110
Лол нет. Он выдает проект в 1 файле решение, а это чисто модуль, куда подключаются остальные. Могу показать еще, что я написал перед тем как дропнуть
24 315052193
Ну элементарщина же, argparse, bs4 и всё такое. Знание стандартной библиотеки + элементарный парсинг. Этого точно достаточно современному джуну? Я бы на месте собеседователя подобрал задание посложнее, хотя б со scrapy или там например с поднятием сайтика с наглядными табличками из собранных данных.
image.png39 Кб, 742x666
25 315052220
Питонщик не сможет такое написать.
26 315052287
>>51563

> будет 1000 откликов


> хз как отбирать


точно так же как если откликов всего 50, но есть возможность повторить процесс еще 20 раз. но анальникам-вахтерам и хрюшам с fomo этого не понять

> даун даун даун даун


походу даун ты

> На первую работу я решал алгоритмических 6 задачек на время до собеседования и без фидбека в случае неудачи


а я нет, просто на вопросики поотвечал. и на вторую. и на третью. Если ты любишь жрать печенье с молоком, то пожалуйста. Но почему-то печенье с молокомеды в it не могут это делать молча и трясет, когда кто-то не такой терпила как они
image.png39 Кб, 742x666
27 315052296
C++ БАТЯ В ЗДАНИИ, СУКИ!
>>51563
>>52287
C++ БАТЯ В ЗДАНИИ, СУКИ!
28 315052302
>>52193

> Бс4


Это было бы легко, я даже код сделал, который и перебирает это DOMики, но сайты магазинов это во 1 подозрительно, потому что компания сама коммерческая и кажется что наебут

2 на сайтах там день через день чеккеры чтобы не парсили, например, через скрипт ты к сайту ленты не подключишься, выдаст ошибку "запрещен доступ без входа", хотя с мобилы и пквсе заебись, там пиздец защиты и нужно иметь компетенции соответствующе, да и вообще я на бекендера иду, поэтому у меня нет вот опыта чужие сайты на абордаж брать
29 315052306
>>52094
Ебанутое тупорылое безграмотное быдло. Это ты. А алгоритмы применяются везде - скажем, тебе нужно знать, как устроено и работает B-дерево, если планируешь хоть сколько-нибудь оптимизированные запросы писать. Да даже поиск большой подстроки в большом спаршенном файле. Умняша напишет через Ахо-Корасика или хотя бы через роллинг хэш, а ты за O(NM) в лучшем случае.
image.png39 Кб, 742x666
30 315052314
>>52306
>>52302
СОСАТЬ!
31 315052322
>>52220
>>52296
А я помню твои треды, я тебя люблю кстати , мой любимый аноним тут
мимо оп
32 315052330
>>52184
Знаешь мне это не интересно. Ты можешь что-то угодно написать под разным углом, а какая эффективность и быстро действие? Можешь и как модуль сделать. Меня интересует теоретическая база
33 315052345
>>52322
Фига. Ну дарова.
34 315052372
>>52330

>и быстро действие? Можешь и как модуль сделать. Меня интересует теоретическая база


а причем тут чат гапота? это мой печенье с молокомкодец. Да и в питоне нет места быстродействию
35 315052380
>>52314
Самые быстрые алгоритмы на С++.
36 315052414
>>52372
Хотя ты прав. В питона главное результат. Это же С++
37 315052473
>>52089
Теперь объясни как это работает? Отправь код.
38 315052585
Парсить сайты + позиция джуна, всего скорей просто показать что ты пишешь адекватный поддерживаемый расширяемый код. Используешь патиерны и принципы solid. Обходить защиты сайтов это точно не твоего джуновского ума дело.

Защиту от cloud flare ты всё равно не обойдёшь. Очень нетривиальная задача. Рецепты обхода в 99% случаев уже не работают. Постоянно идёт капча хитроваебанная, где надо ползунки двигать и пазлы собирать или дрочить вприсядку.
39 315052633
>>50652 (OP)
Нормальное тестовое. Пожалуй даже простое. А позиция как называется? Просто я такое с помощью селениума делал, а это инструмент для тестирования.
40 315052650
>>50652 (OP)
Слшиком дофига возни для тестового, имхо. Я такие пропускал когда вкатывался. По объёму тестового можно сказать, что твоё время не ценят, и, скорее всего, ценить не будут даже при найме.
Запись 2025-01-07 135527.mp414,9 Мб, mp4,
880x916, 1:52
41 315052798
>>52473
видосом если не против https://pastebin.com/N9A4FLLu
алсо я прям бегом рассказал, но это вторая запись, первая запись звук с микро не записала, поэтому там немое кино было
>>52585

>Парсить сайты + позиция джуна, всего скорей просто показать что ты пишешь адекватный поддерживаемый расширяемый код. Используешь патиерны и принципы solid. Обходить защиты сайтов это точно не твоего джуновского ума дело.


а ну это я умею, просто забросил код поэтому выглядит немного хуевенько и недописано соответственно
42 315052857
>>52633
ну вот оно и есть, я споткнулся об клаудфаер и потом начал сомневаться впринципе что-то тут не атк
43 315052874
>>52414
да и не то что главное резултат, питон, имея библы даже на чистом С под капотом медленный. Поэтому это бессмысленно
44 315052957
>>50691

> Если нет - пошли они наледенец.


С нынешней конкуренцией это ты пошел наледенец. Либо выполняй тестовую либо получи в подарок леденец без работы
45 315052963
>>52650
А ты кто такой, что бы твое время ценить? Никто, пыль ебаная под ногами.
46 315053014
>>52220
Какой качественный, задокументированные метод. Ни разу не лапша. Каждая функция имеет понятное название. Триста тысяч этому господину
47 315053023
>>52798
По факту у тебя код не готов и ничего не работает как я понял.
48 315053035
>>52963
Наледенец работать с чёртом который так думает?
49 315053080
>>53023
кабанчик, ты? увидел твои не работает и сразу узнал. Передай трубочку синьке. я ему скажу пару ласковых.
мимо мидлятина
50 315053094
>>52798
Мы вам перезвоним.
51 315053155
>>53080
У тебя по ТЗ требование - запустить свою леденецню и показать её работу, а в коде куча пустых методов и визг, что ты уже всё сделал.
52 315053204
>>52798
Спасибо аноныч. Как учился, документацию читал, где черпал информацию, кем работаешь, помимо этого какие языки знаешь. А вообще чем занимаешься?
53 315053216
>>50652 (OP)
С виду просто. С гопотой можно сделать часа за 2 если печенье с молокомкодом и за день, если со всеми ООП и солид. Куда тут паттерны крутить даже не знаю, но если вьебешь то молодец. Другое дело, что для сбора данных с магазинов вроде озона и вообще любого нужен хитрый метод обхода и магаз очень может не дать тебе даже первый ответ кодом 200)))). На мой взгляд хитрые как и все эти галеры ссаные. Сам проходил и бесят сильно. Не взяли ни по одному тестовому такого толка. Отклик не дадут
54 315053291
>>50652 (OP)

>че думаете о тестовом на джуна?


Выглядит будто решили сэкономить на поиске фрилансера и это тестовое потом будут юзать для своих целей, а тебя наледенец пошлют.
55 315053297
>>52302
Тогда через селениум, чё ты как этот. Нашёл проблему, блин.
56 315053391
>>50652 (OP)
Блять, ты ничтожество ёбаное здесь проще некуда и при этом я Художник 3D графики, которому Питон нужен только для работы внутри Blender 3D. Эта работа явно не для тебя.

>Написать два любых парсера для сбора информации о ценах и остатках из любых интернет-магазинов


Парсить сайты можно через библу Beatifulsoup, в первых строчках прописываешь pip install для каждой нужнлй библы. Так же тебе потребуются минимальные знания HTML (любую сраную книжку на 150-200 страниц прочти и держи под рукой всегда)

>Каждый парсер должен собирать не менее 250 товаров в любой категории;


Отобрать распарсенные типы товаров через random из списка в оперативе в лимите 250. (ну тут while, if - все очень просто)

>Программа должна запускаться с параметрами командной строки.


Скомпилируй питон через Nuitka Лмао, нет. Пусть наледенец идут.
Пример как надо:
import sys

if len(sys.argv) > 1: # Проверка на аргумент
⠀⠀⠀⠀argument = sys.argv[1] # Получение первого аргумента
⠀⠀⠀⠀print(f"Ты передал аргумент, уебок: {argument}")
else:
⠀⠀⠀⠀print("Аргумент ты передал, хуеполучи в подарокна")
57 315053404
>>53216

> Куда тут паттерны крутить даже не знаю, но если вьебешь то молодец.


В чём молодец? Наледенец городить их там, где они не нужны?
58 315053483
Тебе повезло анон, максимально простое задание. Я подобные скриптики на 2 курсе писал в качестве лаб/домашек на компсетях, лол.
59 315053489
Кек. Щас бы думать что селениум поможет обойти клауд флар. Думаешь они тупые там зря хлеб свой едят.
60 315053492
>>53204
пожалуйста)
в школе писал буквально как лего, не вдаваясь в подробности, даже не знал что такое функция и как ее сделать, ну глупым был

потом ближе к 16 летию засел, писал свои проектики и просто веселился грубо говоря, делая рофельные штуки от смс-бомберов до email спаммеров, а потом поступил в айти-шарагу (к слову, если соберетесь поступать, то только ВУЗ и уважаемый, иначе мало перспектив будет)

инфу черпал с ютуба, документаций и из вакансий банально узнавал стеки технологий и тыкался

помимо этого на js, php, c# пару семестров и потом забросил, питон роднее.

занимаюсь учебой, работаю курой в яндексе и просто сижу скроллю мож возьмут куда. При этом работал с сенькой из самоката над общим проектом, но я на подскоке был скорее, чем реально придумал что-то, но опыт от него перенял

>>53216
дада, клаудфаеры и прочая залупа. Ради приколы я мог бы селениумом открывать страницы и через распознавание текста парсить))))))))) но это чисто рофл ради рофла
61 315053508
>>53297
В 2022 селениум об клаудфлейр при парсинге авито не спотыкался, кстати. Хз, как щас.
Это была консольная программка, которая хранила названия классов дом-элементов, содержащих название, рейтинг и цену и запускала селениум с такими вводными. Минусы очевидны - работать будет только на авито, перестанет работать, если названия классов поменяются.
62 315053535
>>53492
Спасибо анон. А ты молодец.
63 315053557
>>53391

>Парсить сайты можно через библу Beatifulsoup, в первых строчках прописываешь pip install для каждой нужнлй библы. Так же тебе потребуются минимальные знания HTML (любую сраную книжку на 150-200 страниц прочти и держи под рукой всегда)


так вы умники, сам и напиши. я первым делом через него и ебанул, только вот умные программисты сайта возвращают тебе 401 и требуют авторизацию пройти через куки

серьезно только и пиздите, потому что чтобы обойти 401 может тоже надо 2 строчки прописать
но ни я ни ты не привели способ как это сделать
64 315053569
>>53404
Да я леденец знает. Везде паттерны просят. Это теперь стандарт
Мне кажется менеджерам привычно не думать в форме паттерна. Зачем им понимать что там за методы делающие реальную работу, если сверху паттерн а значит всё по красоте - такого берем
65 315053603
>>53569
да анон, стоит хотя бы прочесть, потому что половину паттернов ты сам знаешь и вывел давно пока программировал для себя, потому что это это очевидная штука, либо штука, которая реально на лета схватывается
image.png23 Кб, 751x234
66 315053710
>>53391

>if else


тебе в уважаемом обществе печенья с молоком за щеку накидают за такое
67 315053794
>>53557

>так вы умники, сам и напиши


Нихуя себе ты охуел. У меня уже есть работа, я CG Technical Artist at Mail.ru. Это тебе работа здесь нужна.

Сука, я тебе даю подсказку:
import argparse (надежнее чем sys)
import requests
from bs4 import BeautifulSoup
import csv
import xlwt
import statistics

Касательно авторизации через request,
Все что тебе нужно чтобы тебя наледенец не послали - это sessionid, csrftoken, они даются через авторизацию(логин-пароль), если не даются попробуй другой интернет-магазин, если все магазины не работают, придумай свой воображаемый магазин и верни дателю леденецни и скажи, что 401 - не твои проблемы. В тестовом не указано.
68 315053828
>>53710
Я для джуна написал, тупой ты непослушный мальчик. Если он не знает как парсить через 401 то он и не знает что такое функция
69 315053835
>>53794

>CG Technical Artist


Дизайнер что ли? Что рисуешь?
70 315053855
>>52296

>эти названиях переменных


>тройная вложенность вейл


Наледенец съеби, чмо. Еще и не по теме высрал
71 315053856
>>53828

> Если он не знает как парсить через 401 то он и не знает что такое функция


лол
72 315053904
>>53855
Крепко тебя в анус выебли, однако.
73 315053916
>>53835

>Дизайнер что ли?


Технический художник = {Художник 3D-графики(текстуры, анимация, анатомия, PBR) + программист (HLSL, C#, а так же Python для Blender 3D)}.

>Что рисуешь?


Твою голую мамку
74 315053938
>>53828
всмысле для джуна? я и есть джун
мимо оп
75 315054037
Не вижу как в коде у опа решается пара основных кейсов.

Кейс 1.

Через полгода сайт который ты парсил перевели на другой движок. Свой код ты уже забыл или интегрировал в другой проект. Править его нельзя. Твои действия?

Кейс 2.

Для разных сайтов теперь разный набор полей которые надо парсить. Плюс попросили для сайта А добавить парсинг артикула и числа лайков и оценку в звёздочках. Уже написанный еод править нельзя. Твои действия?
76 315054054
>>53794

>CG Technical Artist at Mail.ru


заступлюс за анона, работаю там же на той же позиции привет коллега
нарисую пару пенисов и кину в прод

напишу что это ты пенисы рисуешь. двач майлру принадлежит тебя заставят пенисы убрать твои отовсюду
image.png47 Кб, 757x790
77 315054120
>>54037

>Через полгода сайт который ты парсил перевели на другой движок. Свой код ты уже забыл или интегрировал в другой проект. Править его нельзя. Твои действия?


в самом классе парсера можно передаваемый модуль запроса данных поменять без боли, главное чтобы возвращал json

> Для разных сайтов теперь разный набор полей которые надо парсить. Плюс попросили для сайта А добавить парсинг артикула и числа лайков и оценку в звёздочках. Уже написанный еод править нельзя. Твои действия?



значит, рефакторим модуль возврата данных сайта и через паттерн Директора с строителями закладываем фундамент того, чтобы можно добавлять сайты с кастомными полями
78 315054125
>>54037
3 кейс
Ты забыл свой код, а тут возникла срочная потребность его распечатать и дрочить с ним вприсядку улюлюкая. Твои действия?
79 315054201
>>50652 (OP)
Звучит как наебалово))
80 315054237
>>50652 (OP)

>че думаете о тестовом на джуна?


Сотни откликов, ты все ещё витаешь в иллюзиях и на что-то надеешься?
81 315054287
>>54237
Антивкат-лахта спок
82 315054355
>>54120

Кейс 3.

Теперь сортировка не по алфавиту, а по рейтингу а если рейтинга нет то по цене, а с одинаковой ценой по алфавиту.
image.png1,5 Мб, 1280x894
83 315054368
>>54125
распечатываем и дрочим
84 315054369
>>50652 (OP)
ох ты ж ё-моё! душная духота, а не задание. Я помню, когда джуном искал по c# вакансии, там давали задания даже с ui-интерфейсом сделать прогу. Хорошо что щас, когда я уже миддл, то можно без этих дурацких заданий проходить собесы
85 315054376
>>50912
Пиздец ты кринжулька, начни с нейминга хотя бы
86 315054378
>>54120

> значит, рефакторим



Ну вот и всё ты поплыл. Тебе на задачу дали 2 дня, а ты 2 недели будешь её делать, вспоминая и переделывая всё что делал. К тому моменту как сделаешь это уже будет не нужно, босс передумал. Ещё пару таких проёбов и ты уволен.
87 315054411
>>54368
На тебе ездить будут. Такие как тот петух со своими КЕЙСАМИ. Всегда найдет к чему доох ты ж ё-моё!ся и придумать рандомной хуеты в условиях, которую он выдумал только что, лишь бы тебя заох ты ж ё-моё!
88 315054464
Оцените код, ребяки?
89 315054495
>>50652 (OP)
Задание элементарное, решается без знания программирования или на сраном рнр. А вот работодатели долбаёбы, держись подальше, они не понимают, что хотят. Купили бы а-парсер и хуеполучи в подарокли бы поддержку.
90 315054504
>>52296
Таблетки прими и успокойся
91 315054516
>>54037

>Через полгода сайт который ты парсил перевели на другой движок. Свой код ты уже забыл или интегрировал в другой проект. Править его нельзя. Твои действия?


>Править его нельзя.


Тогда просто посмотреть что ничего не работает и поплакать, что доступы куда-то кто-то проебал. Во всех остальных случаях только править под новый движок.
image.png89 Кб, 1200x1351
92 315054529
Ребята, как вам мой код?
https://dropmefiles.com/XzRcn
93 315054555
>>54378
тим шлет наледенец босса и забирает нас в фаанг
>>54411
я такой леденецней под супер-универсальный код дрочился только когда solid задрачивал. конечно идет наледенец заказчик
94 315054570
>>54464
заебись код. побольше бы такого
95 315054581
>>54504
БАТЯ МОЖЕТ В СИ
96 315054623
>>52287
Терпила-нетерпила, причем тут это, даун? Если ты "просто отвечаешь на вопросики", то это компании с маленькими зарплатами, какой смысл выебываться легким офером, если ты работаешь за 50-70 процентов от того, что получают в компаниях со сложными собеседованиями? У меня был офер на 2к долларов после собеседования, на котором не задали ни одного технического вопроса, только кринж по типу почему я выбрал свою профессию. И какой смысл в этом офере, если после нормального собеседования мне предложили х2 зарплату? В том чтобы выебываться в интернете? Тем более тут про джунскую должность, если ты джун, то у тебя конкуренция около 100 человек на место, не будешь делать тестовое - его с радостью сделают другие. Как тебя оценить, если у тебя опыта работы нет? Тратить время на каждого, кто откликнется? Час времени нормального разраба, который может принять решение о найме, стоит минимум от 1к рублей, на вакансию тысяча откликов - нужно потрать 1кк рублей на закрытие джунской вакансии, чтобы позадавать вопросы нетерпилам?
Ты отсталый даун.
97 315054639
>>54287

>Антивкат-лахта спок


Коупинг))))))

Ты отрицаешь что сейчас в айти бешеная конкуренция?
98 315054646
99 315054649
>>54495

Да-да, а ещё лучше на 1С пусть переходят, на Битрикс, там вообще вся работа компании из коробки. Купил за 100к и в леденец не дуешь, ведёшь бизнес. За 30к в год продляешь лицензию и кайфуешь. А главное всё само работает и ничего делать не надо.

Ну как с а-парсером примерно и прочими "готовыми" недорогими решениями на рынке.

Зачем своих программистов держать, лучше плати чужим, а ещё их менеджерам, их хр-у, их кабану, и пошло поехало.

Ой ну это ведь всё равно дешевле.

Да-да, апарсеролахта, да-да я поверил. Конечно дешевле оплатить их программиста и их поддержку и их менеджера и их кабана, чем оплатить одного своего.
100 315054686
>>54649
Ну дешевле же, вот рефка - проверяйте!
101 315054707
>>54623

>стоит минимум от 1к рублей


нахуя его дергать? на тех собес человек 10 из 100 допускаешь, половина из-за неадекватности отваливается
102 315054722
>>50652 (OP)

>парсинг


Работа пидараса. В нормальную компанию потом леденец устроишься с таким резюме.
103 315054745
Пацаны Я забываю код который писал это нормально? Как у вас ?
104 315054759
>>54686

Да, конечно, а то я с 1С дел не имел и не знаю как этот наёб работает. Главное гоя подсадить на свою леденецню, а там он уже никуда не денется. Будет бля платить по 500 руб. в час за каждую доработочку а ещё перед этим ТЗ писать и всё будет сделано по ТЗ и ни на 1 грамм больше.

Итого фирма только выиграет. Вместо 1 ляма на кодера в год потратить 5 на бесплатное и дешёвое решение которое работает само.

Плавали, знаем. Иди наледенец.
105 315054800
>>54686
По промокоду sosihuybidlo 10 приветственных фрипарсов в подарок!
106 315054835
>>53492

> занимаюсь учебой, работаю курой в яндексе и просто сижу скроллю мож возьмут куда. При этом работал с сенькой из самоката над общим проектом, но я на подскоке был скорее, чем реально придумал что-то, но опыт от него перенял


Чтоб ты сдох в канаве пи́до́ра́с
107 315054849
>>54649
За это не надо платить, если ты не шиз, который даже на винрар лицензию купит.
108 315054865
>>54759
Истеричка, утри пену, наледенец ты сюда своё печенье с молоком принёс?
P0P01GylehtWPL-5SL88SVurWXtYNUJMcYP4bWYbqcbL9BlbWHQA06CU1ofrH5DTUxpaaTvs1EKEvXLIqLQ57qHR.mp4227 Кб, mp4,
604x258, 0:18
109 315054882
110 315054890
>>54722

Да никто не будет смотреть какие ты там бизнес задачи решал, это вообще ни твоего ума дело. Зарабатыванием денег занимается менеджмент и руководство. Твоё дело давать им для этого инструменты, которые хотя бы не будут им МЕШАТЬ в этом, а ещё лучше будут помогать. Ты инженер, а не SEO. Делай так чтобы твоя программа пиздато выполняла поставленную задачу и ещё предугадывай какие там подводные и что может понадобится в будущем и чтобы это было поддерживаемо, стабильно и расширяемо.

Вот я ОПу три простых кейса кинул и оказалось что его программа хуёвая, потому что там нарушены принциы SOLID в тех местах где это не должно быть так. Логика прибита гвоздями, очень мало гибкости там где она нужна. Логику сортировки не поменять. Логику парсинга не поменять. Требуется переделывать уже написанный код. То есть кабан тебе будет платить за один и тот же код два раза просто потому что ты проебался в первый раз.
111 315054900
>>54835
сеньор, ты? прости что прописал DROP TABLE
112 315054912
>>54707
Половина от 100 это 50, а не 10.
Хорошо, пускай на техсобес проходит 10%, это 100к на закрытие джунской позиции и две с половиной рабочих недели непрерывных собеседований? Норм?
113 315054921
>>50652 (OP)
Тупое задание, никакой интересной логики, любой заводчанин после месяца курсов сделает за час, если не совсем тупой
114 315054929
>>54581
БАТЯ МОЖЕТ И В ASM. НО, МНОГА БУКАФ.
115 315054971
>>54890

>Логику сортировки не поменять


лол, поменять, вместо алфавитной передаешь желаемую, даже не трогая класс. Главный класс лишь отправляет запрос с данными, а логика сортировки уже на модуле висит

Parser1 = Parser(by_alpahbet)
Parser2 = Parser(by_kartu_taro)
Parser3 = Parser(pohui_sort_naugad)
1735812147.jpg1,3 Мб, 2057x2160
116 315055022
>>50711

>нет, бесплатно офкорс и не факт что фидбек


Так ведь ты им сам парсер не отдаёшь, только видео его работы. Нет? А задание нормальное, просто даже.
117 315055026
>>54912

>две с половиной рабочих недели непрерывных собеседований? Норм?


обычно прогера на 2-3 дня снимают и уже проводят в эти 2-3 дня собесы. Алсо 100к это не так уж и много, если джунам хотя бы платить собираются. В нищих галерах такое себе, что даже бюджета на обучение не хватит
118 315055044
>>55022
надо в тг скинуть парсер и еще видос как он работает
119 315055053
>>50881

>Ну типа откликнулась тысяча лохов, из них 700 написали парсеры озона


А если им надо парсить не озон, а какие-то определенные сайты? Сайты в задании выбирает сам соискатель же.
120 315055106
>>54971

А почему у тебя парсер вообще зависит от сортировки? Задача парсера - парсить. Он берёт ресурс, который надо парсить, применяет к нему определённый алгоритм, выдаёт результат работы алгоритма. Получение ресурса для парсинга, алгоритм парсинга - всё это должно быть отдельно и настраиваемо. Сортировка там вообще ни к чему.
1735761284.jpg598 Кб, 1280x2276
121 315055121
>>50912

>Ну лул, может ты мидл-сенька. Я хоть и имею опыт, но уже с пятницы копаюсь после работы вечером.


Парсер пишется за несколько часов. Ну, максимум сутки, если со всеми свистоперделками. Тут тебе даже гуй приделывать не надо. Рано тебе ещё работать, анон, учись. Пока что ты даже на джуна не снежная бабаешь. Без обид.
122 315055125
>>50652 (OP)
Ну и? Задание само по себе нормальное, но будь готов, что могут даже фидбека не дать из-за наплыва кандидатов.
123 315055135
>>50912
Какой же в питоне код всратый...
124 315055143
>>50912

>Я хоть и имею опыт


Какой ты там опыт имеешь, чмоня? Опыт ковыряния пальцем в дымоходе?
125 315055159
>>55026
Хз где такое происходит, обычно ставят 1-2 собеседования на 2 недели и этого уже достаточно, чтобы большинство ныло.
126 315055238
>>54890
Схуяли он должен что-то там предвидеть и предчувствовать? Он сделал ровно то, что было задано.
127 315055272
>>55121
я бы хотел быть пикрилом и рычать мурчать в африке как тигр. наледенец это айти
128 315055278
>>50912

>1)


>2)


>3)


Тесты, блядь. Хуесты. Тебе нужно написать простой скрипт для конторы из 40 человек, которая торгует шинами. А не эту леденецню. Можно вообще без ООПа обойтись. Пидoр, блядь. Из-за таких кубков, как ты, весь современный софт и веб тормозит к хуям. Желаю тебе рака дымоходы.
129 315055313
>>51330

>там буквально в задании работа стоит минимум 100К за парсер.


ШТОА? Где? Покажи.
130 315055326
>>55278
Так конторы сами дрочат на тесты. Я бы и рад был это печенье с молоком игнорировать.

мимо
131 315055340
>>55278
мне прост на прошлом тестовом, которое я написал на 150 строк сказали, что надо это все впихнуть и по папочкам с тестиками оформить. прости меня анон ((
132 315055380
>>51746

>надо под святые стандарты все распланировать


Кому конкретно надо?
133 315055385
>>55340
Ну тебя просто мягко слили, скорее всего. Тесты на 150 строк кода это крайний ебанизм.
134 315055393
Ахуеть так просто??? Мне кажется даже я смогу за день это сделать, при том что войтишником никогда не был и не хотел, а просто интересовался когда младше был
135 315055411
>>55393
401: бу испугался не бойся
136 315055427
>>55380
работодателю
>>55385
ну бля
137 315055448
>>55411
Это не проблемы кодера, если чо.
138 315055456
>>52163
Да, это змея такая.
139 315055483
>>55448
Бро, я тоже накидал и рефактнул, но 401 выдает, я также обьяснил этому челу HRу, он сказал что-то в уровне кабана:
работает? выдает? нет? ну гг отказ
140 315055496
>>55278
Ему не скрипт нужно написать, а показать свои навыки, этим кодом не будут пользоваться по его прямому назначению, будут смотреть как он его написал, какие подходы использовал для решения задачи
141 315055538
>>55238

Потому что он софтвар инженер, а у софта есть мировые стандарты качества, которые в данном случае не соблюдаются.
142 315055573
>>55496
нет, там надо было прям работающий софт. мне давали тестовые тудушки, всякие организаторы работы, каких-то ботов ну не для коммерции, а тут конкретно рабочий софт запилить
мимо оп
143 315055603
>>55538
Чет проиграл со стандартов качества в магазине шин. Ты совсем дегрод?
144 315055637
>>55603
на самом деле это магазин лодок мимооп
145 315055656
>>55603

Не важно где и что ты делаешь, нужно делать пиздато, иначе никогда ничему не научишься и всегда будешь волчарой печенье с молокомкодером.
146 315055675
>>55448
401 это проблема кодера как раз таки.
4хх это в целом ошибки клиента.
Код надо писать так, чтобы не было ошибки с авторизацией. Это ж не сервер вдруг сломался, это ты к нему неправильно обращаешься.
147 315055703
>>52633

>Просто я такое с помощью селениума делал


Хуениума. Очередной пидoр-долбоёб. Чтобы парсить сайты их конкурентов достаточно курла. Если ты озон или авито парсить хочешь, они, понятно, будут сопротивляться, а селениум палится очень сильно. Мудак, блядь.
148 315055725
>>55483
Ну и правильно он тебе сказал, у тебя буквально не работает твоë решение. Надо делать так, чтобы работало. Чего ты ещë ожидал?

Мимо
149 315055733
>>55656
ну так анон я знаю как сделать расширяемость и как этов се сделать. но мне лень
я смогу спроектировать такую систему, где все будет не печенье с молоком, но
это же просто парсер, который судя по всему был скамом
мимо оп
150 315055767
>>52650

>Слшиком дофига возни для тестового,


Интересно просто, какие задачи на работе ты решаешь.
151 315055916
>>55675
а потом отлетаешь на парашу за скраппинг
152 315055949
>>50652 (OP)

>че думаете о тестовом на джуна?


норм, обычное задание
надо им обычную консольную прогу с разбором параметров командной строки и работой с файлами. на пистоне это просто, надо заюзать готовые библиотеки. покупай книжку пистон за 21 день и делай
только работа с интернетом и парсеры -- это не джуниорские темы, но если найдешь подходящую библиотеку то норм
просто если им парсеры нужны в работе и они ищут именно таких программеров, то придется поднапрячся

>еС ЧО компания из 40 человек, продающие шины, в общем не бигтех


тогда и нет нужды напрягаться и писать сложное, как тут предлагают аноны. скорее всего твоя работа будет заключатся в поиске конкурентов, парсинге их сайтов на предмет цен и скидывания всего этого в эксель
а потом пойдет тупо демпинг или ценовая война. видимо ничего лучше кабанчик не смог придумать
153 315055959
>>53508

>2022 селениум об клаудфлейр при парсинге авито не спотыкался,


Вот прям голый селениум без ничего?
154 315056003
>>55949

>работа с интернетом и парсеры -- это не джуниорские темы


а что тут сложного помимо войны с 401?
155 315056037
>>55916
Это незаконно? Если да, то зачем тогда делать это тестовое в принципе?
156 315056053
Хз, никогда не писал парсеры.
Разве после парсинга N товаров крупные магазы не стали посылать на леденец уже давным давно?
157 315056058
>>53938

> я и есть джун


>мимо оп


Почему не синьор сразу? Пока что ты хyйня из-под коня, а не джун.
158 315056091
>>56003
Ну например, совсем умные отдают не 401 а мусор левый
159 315056101
>>55949
А что должен делать джун?
160 315056106
>>56037
если там стоит защита то звоночек. а если и нагрузку создашь, то подснежная бабаут как минимум. 401 это так сказать надпись на дороге

> дальше б-га нет

161 315056129
Оцените моё тестовое на джуна JS.

Взяли бы такого шиза к себе на работу?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Змейка</title>
</head>
<body>
<script>
var MAP = {
cells: [],
food: []
};
var Z = {
l: 1,
body: [{x:9,y:9}],
d: "←"
}
var I = null;
var speed = 800;
var speed_up_food_required = 3;
var speed_up_food_current = 0;
var paused = false;

function createMap() {
var body = document.getElementsByTagName("body")[0];
var tbl = document.createElement("table");
var tblBody = document.createElement("tbody");

for (var j = 0; j < 20; j++) {
MAP.cells[j] = new Array();
var row = document.createElement("tr");
for (var i = 0; i < 20; i++) {
MAP.cells[j] = document.createElement("td");
var cell = MAP.cells[j];
cell.setAttribute("id", j+","+i);
cell.setAttribute("width", "10");
cell.setAttribute("height", "10");
row.appendChild(cell);
}
tblBody.appendChild(row);
}
tbl.appendChild(tblBody);
body.appendChild(tbl);
tbl.setAttribute("border", "2");
}

function colorCell(x, y, color) {
MAP.cells[y][x].style.backgroundColor = color;
}

function drawZ() {
for (var i = 0; i < Z.body.length; i++) {
colorCell(Z.body.x, Z.body.y, "red");
}
}

function moveZ() {
switch (Z.d) {
case "↑":
if (Z.body[0].y == 0) {
gameOver();
} else {
var newCell = {x:Z.body[0].x,y:(Z.body[0].y - 1)};
}
break;
case "→":
if (Z.body[0].x == 19) {
gameOver();
} else {
var newCell = {x:(Z.body[0].x + 1),y:Z.body[0].y};
}
break;
case "↓":
if (Z.body[0].y == 19) {
gameOver();
} else {
var newCell = {x:Z.body[0].x,y:(Z.body[0].y + 1)};
}
break;
case "←":
if (Z.body[0].x == 0) {
gameOver();
} else {
var newCell = {x:(Z.body[0].x - 1),y:Z.body[0].y};
}
break;
}
if (MAP.cells[newCell.y][newCell.x].style.backgroundColor == "red") {
gameOver();
}
Z.body.unshift(newCell);
if (MAP.cells[newCell.y][newCell.x].style.backgroundColor != "blue") {
var tail = Z.body.pop();
colorCell(tail.x, tail.y, "white");
} else {
removeFood(newCell.x, newCell.y);
colorCell(newCell.x, newCell.y, "red"); // потому что addFood считает все не красные ячейки свободными, то есть это чтобы еда случайно не заспавнилась там же
addFood();
speed_up_food_current++;
if (speed_up_food_current >= speed_up_food_required) {
speedUp();
speed_up_food_current = 0;
}
}
}

function mainLoop() {
moveZ();
drawZ();
}

function gameOver() {
clearInterval(I);
alert("Игра закончена.")
}

function keyHandler(e) {
e = e || window.event;
if (e.keyCode == '38') {
Z.d = "↑";
} else if (e.keyCode == '40') {
Z.d = "↓";
} else if (e.keyCode == '37') {
Z.d = "←";
} else if (e.keyCode == '39') {
Z.d = "→";
} else if (e.keyCode == '39') {
Z.d = "→";
} else if (e.keyCode == '19') {
if (paused) {
I = setInterval(mainLoop, speed);
} else {
clearInterval(I);
}
paused = !paused;
}
}

function addFood() {
var freeCells = new Array();
for (var j = 0; j < 20; j++) {
for (var i = 0; i < 20; i++) {
if (MAP.cells[j].style.backgroundColor == "red") {
continue;
} else {
freeCells.push(MAP.cells[j]);
}
}
}
if (freeCells.length == 0) {
gameOver();
} else {
var cell = freeCells[Math.floor((Math.random() * freeCells.length) + 0)];
var tmp = cell.id.split(",");
MAP.food.push({x:tmp[1],y:tmp[0]});
}
for (var k = 0; k < MAP.food.length; k++) {
colorCell(MAP.food[k].x, MAP.food[k].y, "blue");
}
}

function removeFood(x, y) {
for (var k = 0; k < MAP.food.length; k++) {
if (MAP.food[k].x == x && MAP.food[k].y == y) {
MAP.food.splice(k, 1);
}
}
}

function speedUp() {
if (speed <= 200) {
return;
} else {
speed -= 200;
}
clearInterval(I);
I = setInterval(mainLoop, speed);
}

// =========================================

createMap();
drawZ();
addFood();
I = setInterval(mainLoop, speed);
document.onkeydown = keyHandler;
</script>
</body>
</html>
161 315056129
Оцените моё тестовое на джуна JS.

Взяли бы такого шиза к себе на работу?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Змейка</title>
</head>
<body>
<script>
var MAP = {
cells: [],
food: []
};
var Z = {
l: 1,
body: [{x:9,y:9}],
d: "←"
}
var I = null;
var speed = 800;
var speed_up_food_required = 3;
var speed_up_food_current = 0;
var paused = false;

function createMap() {
var body = document.getElementsByTagName("body")[0];
var tbl = document.createElement("table");
var tblBody = document.createElement("tbody");

for (var j = 0; j < 20; j++) {
MAP.cells[j] = new Array();
var row = document.createElement("tr");
for (var i = 0; i < 20; i++) {
MAP.cells[j] = document.createElement("td");
var cell = MAP.cells[j];
cell.setAttribute("id", j+","+i);
cell.setAttribute("width", "10");
cell.setAttribute("height", "10");
row.appendChild(cell);
}
tblBody.appendChild(row);
}
tbl.appendChild(tblBody);
body.appendChild(tbl);
tbl.setAttribute("border", "2");
}

function colorCell(x, y, color) {
MAP.cells[y][x].style.backgroundColor = color;
}

function drawZ() {
for (var i = 0; i < Z.body.length; i++) {
colorCell(Z.body.x, Z.body.y, "red");
}
}

function moveZ() {
switch (Z.d) {
case "↑":
if (Z.body[0].y == 0) {
gameOver();
} else {
var newCell = {x:Z.body[0].x,y:(Z.body[0].y - 1)};
}
break;
case "→":
if (Z.body[0].x == 19) {
gameOver();
} else {
var newCell = {x:(Z.body[0].x + 1),y:Z.body[0].y};
}
break;
case "↓":
if (Z.body[0].y == 19) {
gameOver();
} else {
var newCell = {x:Z.body[0].x,y:(Z.body[0].y + 1)};
}
break;
case "←":
if (Z.body[0].x == 0) {
gameOver();
} else {
var newCell = {x:(Z.body[0].x - 1),y:Z.body[0].y};
}
break;
}
if (MAP.cells[newCell.y][newCell.x].style.backgroundColor == "red") {
gameOver();
}
Z.body.unshift(newCell);
if (MAP.cells[newCell.y][newCell.x].style.backgroundColor != "blue") {
var tail = Z.body.pop();
colorCell(tail.x, tail.y, "white");
} else {
removeFood(newCell.x, newCell.y);
colorCell(newCell.x, newCell.y, "red"); // потому что addFood считает все не красные ячейки свободными, то есть это чтобы еда случайно не заспавнилась там же
addFood();
speed_up_food_current++;
if (speed_up_food_current >= speed_up_food_required) {
speedUp();
speed_up_food_current = 0;
}
}
}

function mainLoop() {
moveZ();
drawZ();
}

function gameOver() {
clearInterval(I);
alert("Игра закончена.")
}

function keyHandler(e) {
e = e || window.event;
if (e.keyCode == '38') {
Z.d = "↑";
} else if (e.keyCode == '40') {
Z.d = "↓";
} else if (e.keyCode == '37') {
Z.d = "←";
} else if (e.keyCode == '39') {
Z.d = "→";
} else if (e.keyCode == '39') {
Z.d = "→";
} else if (e.keyCode == '19') {
if (paused) {
I = setInterval(mainLoop, speed);
} else {
clearInterval(I);
}
paused = !paused;
}
}

function addFood() {
var freeCells = new Array();
for (var j = 0; j < 20; j++) {
for (var i = 0; i < 20; i++) {
if (MAP.cells[j].style.backgroundColor == "red") {
continue;
} else {
freeCells.push(MAP.cells[j]);
}
}
}
if (freeCells.length == 0) {
gameOver();
} else {
var cell = freeCells[Math.floor((Math.random() * freeCells.length) + 0)];
var tmp = cell.id.split(",");
MAP.food.push({x:tmp[1],y:tmp[0]});
}
for (var k = 0; k < MAP.food.length; k++) {
colorCell(MAP.food[k].x, MAP.food[k].y, "blue");
}
}

function removeFood(x, y) {
for (var k = 0; k < MAP.food.length; k++) {
if (MAP.food[k].x == x && MAP.food[k].y == y) {
MAP.food.splice(k, 1);
}
}
}

function speedUp() {
if (speed <= 200) {
return;
} else {
speed -= 200;
}
clearInterval(I);
I = setInterval(mainLoop, speed);
}

// =========================================

createMap();
drawZ();
addFood();
I = setInterval(mainLoop, speed);
document.onkeydown = keyHandler;
</script>
</body>
</html>
Selection2188.jpg80 Кб, 534x948
162 315056144
>>56129

Можете поиграть заодно кстати :3
163 315056153
>>50652 (OP)
Как обходить хитровыебанные капчи? Давно уже нигде нет простой текстовой. Это явно задача не для джуна
164 315056171
>>54495
Двaчую этого пидoра, кстати.
165 315056184
>>50652 (OP)
Я на питухоне не пишу, может у вас там сплошные библиотеки под взлом дымоходы сайтов, не знаю. Но выглядит так, что кабанчик хочет бесплатно сделать таску. Слишком специфичное задание и странное требование прислать готовый код с демонстрацией. У тебя же собеседование якобы по этому заданию должно быть, логичнее было спрашивать на собеседовании, почему нужнг прислать видео? Как будто сам код хотят, а собеседовать по нему не хотят.
166 315056189
>>56129
ты бы хоть js вынес в отдельный файл
167 315056217
>>56189

Да там HTML-то нет особо, чё там выносить.
168 315056257
>>56129
не работает. просто поле есть и все. залей через
https://pastebin.com/
169 315056277
>>56053
Пишу простенькие парсеры для ИП Залупкин и ООО Ромашка. Буквально там на 1000 позиций.

Постоянно надо учитывать бан IP, всегда берем прокси. Часто нужно парсить с браузера, чисто на curl уже не всегда работает
170 315056278
>>50652 (OP)
Для выполнения этого задания мы можем использовать два популярных парсера: один на базе библиотеки `requests` и `BeautifulSoup` для парсинга HTML страниц, а второй с использованием библиотеки `Selenium` для более сложных сайтов, которые используют JavaScript. В обоих случаях результаты можно сохранять в форматах CSV и XLS с помощью библиотеки `pandas`.

Вот пример решения:

1. Установка необходимых библиотек:
```bash
pip install requests beautifulsoup4 pandas openpyxl selenium
```

2. Описание парсеров:
- Парсер 1: Будет использовать `requests` и `BeautifulSoup` для сбора данных с простой HTML-страницы.
- Парсер 2: Использует `Selenium` для сбора данных с динамических страниц.

3. Техническое задание:
- Два парсера для сбора цен и остатков товаров.
- Сохранение в CSV или XLS.
- Сортировка по алфавиту.
- Медианное значение цен.

4. Пример кода:

```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import argparse
import math
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Парсер 1: с использованием requests и BeautifulSoup
def parse_shop_1():
url = 'https://example.com/products'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

products = []
for product_div in soup.find_all('div', class_='product-item'):
name = product_div.find('h2').text.strip()
price = product_div.find('span', class_='price').text.strip()
products.append((name, price))

return products

# Парсер 2: с использованием Selenium (например, для динамически загружаемых страниц)
def parse_shop_2():
url = 'https://example.com/products'
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get(url)
time.sleep(5) # Подождать, чтобы все данные загрузились

products = []
product_elements = driver.find_elements(By.CLASS_NAME, 'product-item')
for product in product_elements:
name = product.find_element(By.CLASS_NAME, 'product-name').text.strip()
price = product.find_element(By.CLASS_NAME, 'price').text.strip()
products.append((name, price))

driver.quit()
return products

# Функция для сохранения данных в файл
def save_to_file(products, filename, file_format, sort_order):
# Преобразуем цены в числовой формат для вычисления медианы
products = [(name, float(price.replace('₽', '').replace(' ', '').strip())) for name, price in products]

# Сортировка
if sort_order == 'asc':
products.sort(key=lambda x: x[0].lower())
else:
products.sort(key=lambda x: x[0].lower(), reverse=True)

# Преобразуем данные в DataFrame
df = pd.DataFrame(products, columns=['Name', 'Price'])

# Вычисляем медиану
median_price = df['Price'].median()
print(f'Median price: {median_price:.2f} ₽')

# Сохраняем в файл
if file_format == 'csv':
df.to_csv(filename, index=False)
elif file_format == 'xls':
df.to_excel(filename, index=False)

# Главная функция
def main():
parser = argparse.ArgumentParser(description="Парсинг товаров с интернет-магазинов.")
parser.add_argument('--parser', choices=[1, 2], required=True, help="Выбор парсера: 1 или 2")
parser.add_argument('--format', choices=['csv', 'xls'], required=True, help="Выбор формата файла: csv или xls")
parser.add_argument('--sort', choices=['asc', 'desc'], default='asc', help="Порядок сортировки: asc или desc")
parser.add_argument('--filename', required=True, help="Название файла для сохранения")

args = parser.parse_args()

# Выбираем парсер
if args.parser == 1:
products = parse_shop_1()
else:
products = parse_shop_2()

# Сохраняем в файл
save_to_file(products, args.filename, args.format, args.sort)

if __name__ == '__main__':
main()
```

### Описание кода:
1. Парсер 1 (`parse_shop_1`): Использует `requests` для получения HTML-страницы и `BeautifulSoup` для извлечения нужных данных (название товара и цена).
2. Парсер 2 (`parse_shop_2`): Использует `Selenium` для парсинга динамически загружаемых данных с помощью браузера.
3. Функция сохранения данных (`save_to_file`): Сохраняет данные в CSV или XLS файл и сортирует их по алфавиту в зависимости от параметра сортировки.
4. Медиана: Рассчитывается с использованием библиотеки `pandas`.
5. Аргументы командной строки:
- `--parser`: Выбор парсера (1 или 2).
- `--format`: Формат файла (csv или xls).
- `--sort`: Порядок сортировки (asc или desc).
- `--filename`: Имя файла для сохранения.

### Пример запуска:
```bash
python parser.py --parser 1 --format csv --sort asc --filename products.csv
```

### Дополнительные замечания:
- Для работы с Selenium необходимо скачать [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/) и указать путь в `webdriver.Chrome(executable_path='/path/to/chromedriver')`.
- Код будет работать на реальных страницах, если структура HTML соответствует ожидаемой. В реальных случаях возможно потребуется адаптировать CSS-селекторы.

мимо чатгпт
170 315056278
>>50652 (OP)
Для выполнения этого задания мы можем использовать два популярных парсера: один на базе библиотеки `requests` и `BeautifulSoup` для парсинга HTML страниц, а второй с использованием библиотеки `Selenium` для более сложных сайтов, которые используют JavaScript. В обоих случаях результаты можно сохранять в форматах CSV и XLS с помощью библиотеки `pandas`.

Вот пример решения:

1. Установка необходимых библиотек:
```bash
pip install requests beautifulsoup4 pandas openpyxl selenium
```

2. Описание парсеров:
- Парсер 1: Будет использовать `requests` и `BeautifulSoup` для сбора данных с простой HTML-страницы.
- Парсер 2: Использует `Selenium` для сбора данных с динамических страниц.

3. Техническое задание:
- Два парсера для сбора цен и остатков товаров.
- Сохранение в CSV или XLS.
- Сортировка по алфавиту.
- Медианное значение цен.

4. Пример кода:

```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import argparse
import math
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Парсер 1: с использованием requests и BeautifulSoup
def parse_shop_1():
url = 'https://example.com/products'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

products = []
for product_div in soup.find_all('div', class_='product-item'):
name = product_div.find('h2').text.strip()
price = product_div.find('span', class_='price').text.strip()
products.append((name, price))

return products

# Парсер 2: с использованием Selenium (например, для динамически загружаемых страниц)
def parse_shop_2():
url = 'https://example.com/products'
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get(url)
time.sleep(5) # Подождать, чтобы все данные загрузились

products = []
product_elements = driver.find_elements(By.CLASS_NAME, 'product-item')
for product in product_elements:
name = product.find_element(By.CLASS_NAME, 'product-name').text.strip()
price = product.find_element(By.CLASS_NAME, 'price').text.strip()
products.append((name, price))

driver.quit()
return products

# Функция для сохранения данных в файл
def save_to_file(products, filename, file_format, sort_order):
# Преобразуем цены в числовой формат для вычисления медианы
products = [(name, float(price.replace('₽', '').replace(' ', '').strip())) for name, price in products]

# Сортировка
if sort_order == 'asc':
products.sort(key=lambda x: x[0].lower())
else:
products.sort(key=lambda x: x[0].lower(), reverse=True)

# Преобразуем данные в DataFrame
df = pd.DataFrame(products, columns=['Name', 'Price'])

# Вычисляем медиану
median_price = df['Price'].median()
print(f'Median price: {median_price:.2f} ₽')

# Сохраняем в файл
if file_format == 'csv':
df.to_csv(filename, index=False)
elif file_format == 'xls':
df.to_excel(filename, index=False)

# Главная функция
def main():
parser = argparse.ArgumentParser(description="Парсинг товаров с интернет-магазинов.")
parser.add_argument('--parser', choices=[1, 2], required=True, help="Выбор парсера: 1 или 2")
parser.add_argument('--format', choices=['csv', 'xls'], required=True, help="Выбор формата файла: csv или xls")
parser.add_argument('--sort', choices=['asc', 'desc'], default='asc', help="Порядок сортировки: asc или desc")
parser.add_argument('--filename', required=True, help="Название файла для сохранения")

args = parser.parse_args()

# Выбираем парсер
if args.parser == 1:
products = parse_shop_1()
else:
products = parse_shop_2()

# Сохраняем в файл
save_to_file(products, args.filename, args.format, args.sort)

if __name__ == '__main__':
main()
```

### Описание кода:
1. Парсер 1 (`parse_shop_1`): Использует `requests` для получения HTML-страницы и `BeautifulSoup` для извлечения нужных данных (название товара и цена).
2. Парсер 2 (`parse_shop_2`): Использует `Selenium` для парсинга динамически загружаемых данных с помощью браузера.
3. Функция сохранения данных (`save_to_file`): Сохраняет данные в CSV или XLS файл и сортирует их по алфавиту в зависимости от параметра сортировки.
4. Медиана: Рассчитывается с использованием библиотеки `pandas`.
5. Аргументы командной строки:
- `--parser`: Выбор парсера (1 или 2).
- `--format`: Формат файла (csv или xls).
- `--sort`: Порядок сортировки (asc или desc).
- `--filename`: Имя файла для сохранения.

### Пример запуска:
```bash
python parser.py --parser 1 --format csv --sort asc --filename products.csv
```

### Дополнительные замечания:
- Для работы с Selenium необходимо скачать [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/) и указать путь в `webdriver.Chrome(executable_path='/path/to/chromedriver')`.
- Код будет работать на реальных страницах, если структура HTML соответствует ожидаемой. В реальных случаях возможно потребуется адаптировать CSS-селекторы.

мимо чатгпт
171 315056317
>>50652 (OP)
>>55044
Задание простенькое, давно таких не видел. Разобраться можно за вечер или за два. Делай.
Сроки можешь выставить чуть с запасом, обязательно аргументируй это по типу "8 часов заложил на возможные непредвиденные обстоятельства в процессе выполнения и устранение их последствий" или что-то около того, таким образом покажешь ответственность и предусмотрительность.
Через чатгпт не делай, в таких вещах гораздо полезнее разбираться самому.
Удачи!
172 315056318
>>56257

Наверное макаба какие-то символы проебала.

https://pastebin.com/CUERWNSZ
173 315056320
>>56278

>bash


>pip install


мы вам перевзоним
174 315056379
>>51330
>>50881
А неужели никто не догадался как то защищаться от такого. Вы же программисты, ёпта. Ну заложить в код что то вредоносное или ещё что, что бы если этой хуйнёй будут пользоваться дольше положенного, она начала систему пидорасить.
175 315056396
>>56129
Ну взял игрушку сделал под себя и что? Сколько делал только честно.
176 315056409
>>56320
А что не так?
177 315056414
>>56379

Тут уже советовали заливать решение на GitHub. Заодно сможешь показывать его на других собесах.
178 315056435
>>56320
А не надо Я вам сам перезвоню.
179 315056448
>>56277

>всегда берем прокси


Бесплатные подойдут?
180 315056454
>>56414
подпишите nda на свой же код, мы вам перезвоним
181 315056466
>>56396

В смысле взял? Я с нуля писал. За несколько часов сделал. Я тогда хорошо так пушил JS плюс до этого писал свои печенье с молокомигры, так что для меня всё это было легко.
182 315056518
>>56379
Лет 10 назад, когда пытался в кодинг, то фрилансил и писал такие парсеры. Я уже заранее привык, что в жизни всегда наёбывают. Потому в парсер прописал следующий код: если по определенному адресу есть определенный текст, то выбить ошибку и завершить работу. После этого отдал парсер заказчику. Тот потестировал работу, потом сказал, что леденецня и не заплатил. Я через неделю выключил парсер, он прибежал с горящей дымоходой и отдал всё до копеечки, сколько изначально договорились.

Если лень, то просто вшиваю в код запись, что через неделю сам перестает работать, тупо сверяет дату. Если человек оплатит, то я просто ему скажу "ой вот тут мелкую ошибку поправил" и вышлю ему исправленную версию
183 315056524
>>56466
Хорошо.Мы вам перезвоним.
184 315056546
>>52287

>вопросики


>>51563

>задачек



А получаете денюжки?
185 315056550
>>56448
Да, но больше заебешься. Они медленные, тормозят, отваливаются. Проще платные купить и спарсить быстренько
186 315056552
стоит ли ура, салют! с py на js, если хочется делать игрульки простенькие и в вебе ковыряться?
187 315056595
>>56518
Вот, а то все говорят про наёб и неоплату. Так и надо.
Selection2212.jpg50 Кб, 823x333
188 315056620
189 315056689
>>56129
Голова болит когда вижу такие коды. Почему нельзя написать минимально и красиво.
image.png805 Кб, 920x920
190 315056696
>>56518

> если по определенному адресу есть определенный текст, то выбить ошибку и завершить работу


Сычев! неправильно if используете. Надо оптимизировать. Завершать работу, если текста НЕТУ на каком-то адресе, а наоборот!
191 315056701
>>56518
Почему именно через неделю, а не через день например?
192 315056763
>>50912
Ну это дичь какая-то. Если городить каждый раз отдельный модуль и отдельный класс на любой новый функционал, ты очень быстро начнешь в этом всем путаться, а проект разрастается как леденец знает что. Я уж молчу про производительность. Да, нужно разбивать проект на модули, но только по высокоуровневому функционалу:
- модуль загрузки данных с сайта и парсинга
- модуль обработки данных и подсчета статистик
- модуль работы с файловой системой
и т.д.
Внутри уже можно разбивать на классы, типа отдельный класс для загрузки с сайта, отдельный класс для парсинга и т.д.
Городить же отдельные модули для сортировки данных и подсчета медианы это шиза, я бы даже отдельный класс для этого делать не стал, там обе задачи решаются через функции по 5 строчек кода.
193 315056767
>>55106

>Получение ресурса для парсинга, алгоритм парсинга - всё это должно быть отдельно и настраиваемо.


Кому должно?
194 315056816
>>56701
1. Проверять работу могут дольше одного дня. Редко кто посмотрит в первый же день, все проверит и в тот же день оплатит. Даже недели может не хватить так-то
2. Если же кинули, то наоборот заебись, что через неделю нихуя не работает. Сроки истекли, искать/нанимать некогда, нужна рабочая версия прямо сегодня. Так что им проще заплатить
3. Не смогут свалить на меня неработоспособность кода, типа я там по удаленке/ФТП подключился и испортил им якобы все. Потому что кидалы быстро меняют доступы
195 315056823
>>56763
Покласть уголь 128гб озу. Ай9.
196 315056824
>>50652 (OP)
Думаю, вкатываться в программирование в 2025 - быть тотальным долбаёбом.
197 315056836
>>55448

>Это не проблемы кодера, если чо.


Нет, это проблемы именно кодера.
198 315056882
>>56763

>аждый раз отдельный модуль и отдельный класс на любой нов


есть какая-то литература или что-то такое, чтобы научиться правильно проектировать, чтобы не было шизы такой?
мимо
199 315056896
>>55637
Лодки с шинами? Вы там Царьград штурмовать планируете?
200 315056934
>>56896
Таки Дон брать будем скоро
201 315056964
>>56934
>>56896
ой днепр*
202 315056999
>>55949

>только работа с интернетом и парсеры -- это не джуниорские темы


А какие темы тогда джуниорские?
203 315057007
>>56816
Ясно. Подумал что за неделю парсер уже отработает и устареет.
204 315057099
>>56153
Посадить девочьку на двачевание капчь и сделать так, чтобы капчьи не вылезали слишком чясто.
205 315057186
>>56278

>Использует `Selenium` для сбора данных с динамических страниц.


Можно парсить не сами страницы, можно парсить непосредственно те данные, которые апи сайта отправляет этим страницам. Не?
206 315057222
Лови на js . Мимо jun- кодер
207 315057283
>>56882
Я бы что-нибудь про паттерны проектирования почитал, вроде Head First Design Patterns. Это как раз про то, как нужно писать и компоновать код для решения той или иной задачи + общие советы по написанию кода вроде KISS, DRY, SOLID и т.д.
Там код на джава, но мне как питонисту все понятно было, за исключением некоторых деталей вроде интерфейсов или другого механизма наследования.
208 315057296
>>50652 (OP)
Нормальное задание, на работе примерно этим же и будешь заниматься +-
209 315057301
>>57222
Спасибо чатждпти.
210 315057331
>>50652 (OP)
Хороший гои. Теперь вышли код и видео туториал, покажи как все работает. А мы вам перезвоним.
211 315057517
>>57283
Есть такой сайт refactorguru там буквально под питон все шаблоны выведены, да и не только под него + классное обьяснение
212 315057571
>>57517
да, хороший сайт
213 315057938
>>50652 (OP)
никогда не бери тестовые задания которые по времени занимают больше двух часов.
любого кандидата можно прособеседовать онлайн скринингом за час, либо дать небольшое задание на пару часов и уже по его результату пообщаться. все те кто дает задание на выполнение которого уйдет день или больше это ебанаты и даже если они тебя возьмут условиям труда ты явно рад не будешь
214 315059184
>>57938

> никогда не бери тестовые задания которые по времени занимают больше двух часов и сиди без работы

215 315059187
>>50652 (OP)
леденецня тестовое ваще я бы за день на пыхе сделал
216 315059194
>>52094
Судя по твоему посту - хороший инструмент отсева долбоящеров
217 315059380
>>52306
Не хочу тебя расстраивать, но 99% рабочих задач обычного мартыхана не требует написания алгоритмов, скорее всего за тебя уже все придумано и сделано, и нужно скорее уметь гуглить, уметь разбивать задачу на подзадачи и если важен перформанс уметь тестировать код на этот перформанс. Скорее важно видеть, что если решать в лоб, то алгоритм будет медленным, и искать как умные люди уже решили эту задачу (нейронки с этим охуенно справляются, кстати)
218 315059682
>>50652 (OP)
Я на такие ответы просто не отвечаю.
Делать больше нечего, как выполнить тестовые задания, тратить на это свое время, и в конце поучить "мы вам перезвоним".

Когда работодатель заинтересован в кандидате, это чувствуешь сразу с начала диалога.

А все эти - заполни анкету, сделай тест. Это все Просто трата времени в пустую.
219 315059742
>>50652 (OP)
Простецкое задание лол
220 315059827
>>50652 (OP)
Не делай, потом пожалеешь, все равно не возьмут. Если и возьмут, то за лоупрайс, так как ты сделал тестовое задание, значит терпила. Откликайся дальше.
221 315059914
ВОПРОС
Раз уж тут наносеки программисты собрались. Я правильно понимаю, что сейчас основная проблема в поиске инфы, это поисковики? Вот взять ВК. Прон, в том числе и процессорный, там как был так и есть, его просто отыскать от сложно до очень сложно стало. То же самое с гуглами/яндексами. Первые страницы реклама и правильные ссылки, а неправильные просто не выдаёт. Можно ли создать свой поисковик, да ещё если к нему нейронку прикрутить, которая ы понимала запрос. Это реализуемо?
222 315059979
>>56934
А что, хорошее пиво.
223 315060126
>>59914

>Это реализуемо?


Да. Начинай.
224 315060244
>>60126
Я не умею, поэтому и спрашиваю.
225 315060369
>>50912
За такое форматирование нужно пиздить до кровавых соплей
226 315060917
>>56763

> Ну это дичь какая-то. Если городить каждый раз отдельный модуль и отдельный класс на любой новый функционал



Дурак, это буквально основной паттерн разработки, каждая сущность должна делать только что-то одно и не больше. Первая буковка у солида, если что
227 315061357
>>59914
Так вопрос ресурсов, можно сделать поисковик под ВК, но там в апи должны быть методы дающие возможность индексировать текстовое описания даже в закрытых группах, то можно процессорный поисковик запилить, но там скорее всего этого нет в открытом АПИ. А парсить вообще сайты в интернете очень дорого по инфраструктуре, думаешь независимых поисковиков до сих пор нет потому что никто не догадался их сделать? Нет, там тупо на серваках разоришься.
228 315061524
>>59914
Я не совсем понял что ты имел ввиду, но чатгпт это буквально поиск информации с нейронкой, которая понимает что именно ты хочешь
229 315061630
>>60917
Бля, сразу видно идеального додика для какой нибудь сберпараши, в начале год анализировать требования, потом писать красивй ООП код ещё год, потом выяснить что это печенье с молоком, что вы писалли никому не надо и закрыть проект. Причем делать это всё коллективом в 100 человек, хотя реально там писать рабочий проект в 5 человек максимум. Но в сбере это будут писать 100. Хотя уже давно есть книги с критикой многих паттернов и прочего печенья с молоком, но в РФ их не читали.
230 315061746
>>50652 (OP)
Прикольное задание.
Когда то питон учил, сам такие парсеры писал.
Если ссышь, что их будут использовать, то костылик поставить с лотереей
Хотя ты джун, я бы на месте кабана лучше бабла отвалил за норм парсер, чем чет джуновское юзал.
231 315061803
>>61630
Ну да, пориджу-вкатуну вроде тебя, который выпук какого то блогера посмотрел, намного понятнее как писать надёжный легко поддерживаемый и расширяемый проект, чем дядям, которые эти системы всю жизнь разрабатывают
232 315061828
>>57938
Нах.уй идёшь со своим 2 часов. Я е.бал. Что там два часа делать? Максимум час и все. Встаю хожу или отключаю.
233 315061944
Угараю когда на собеседование спрашивают про алгоритмы. Задаю встречный вопрос, а какие вы алгоритмы применяйте? Нууу пук сырынк не важно. Понятно, знайте если вам нужен алгоритмы, то вам нужен математик. Который лучше знает алгоритмы и объяснить кодеру как жто работает, а реализация кода с этим справится любая макакыч кнопка дав среднего уровня.
Я вам могу написать и рассказать банальные алгоритмы. Это не проблема . Хорошо поняли мы вам перезвоним. Лел.
234 315062185
>>61803
Я уже 20 лет программирую, моя позиция в том, что паттерны это хуита полная, важна экспертиза в доменной области у команды и слаженность, тогда всё получится. Лучше всего код читается когда он вообще на одной странице и написан экспертом, который понимает не код, а саму задачу. Я сам провожу собесы, так для меня паттерны во главе угла у чела, так это сразу минус в карму. И в целом сбер, яндекс, тинек, сразу редфлаг для найма. ещё ни одного оттуда не видел, реально полезного в деле разраба.
235 315062341
>>57938

>можно


На самом деле леденец поймёшь, если не давать задачу на день, то вообще пиздец. Есть куча ебаласов, которые тупо надрочились проходить собесы, но кодить не умеют вообще. Мне такие попадались, приходилось увольнять на испытательном. Мне проще взять чела даже без собеса, если грамотно напишет комменты к коду. Ну или минимально с ним поговорить
236 315062623
>>62185
Ты видимо 20 лет пишешь скрипты на пхп
image.png9 Кб, 401x367
237 315062679
Сделай тестовое и ебани себе в гитхаб, в какой-то момент сможешь тупо отправлять им ссылку вместо выполнения тестового. Я фронтенд и с питоном игрался только чтобы делать мелкие скрипты, но с таким заданием даже я справлюсь за 24 часа, из которых 23 буду ебланить.
238 315062945
>>62623
На С++, ещё был опыт на ява и дотнет по несколько лет. Плюс современный ПХП уже не так прост, да и раньше там были очень продвинутые фреймворки типа ларавелль написанные во многих частях на чистом си.
239 315063059
>>60244
Тогда хyй сoси, губой тряси.
240 315063134
>>62679

>фронтенд



Как и когда вкотился? Сложно было первую работу найти?

Мимо недовкатун
241 315063201
>>63134
В 2016 или около, пришёл на собес, развернул строку и под аплодисменты с фанфарами устроился джуном. Да, тогда настолько легко было вкатиться. Сейчас пиздец какой-то. То что ОПу дают как тест тогда бы за неделю лениво пилилось сениором. Сами себе планочку задрали и еще гордимся.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную вчера в 15:17.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /b/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски