[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений


Новые доски: /obr/ - Offline Battle Rap • /hv/ - Халява в интернете • /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 62 | 1 | 18
Назад Вниз Каталог Обновить

Аноним 14/09/16 Срд 16:21:30  136142268  
14738592911180.png (98Кб, 1090x975)
Привет аноны, я ньюфаг в программировании, изучаю чисто для себя. Начал изучать java, вроде получается, но решил конкретные задачи для себя придумать, а не абстрактные hello world-ы и задачки на сложение и вычитание.

Захотелось написать парсер для авито, который бы как-нибудь сигналил когда появляется товар по низкой стоимости. Сам парсер работает, пикрелейтед, в каждой строке выводит название объявления и цену, как раз то что нужно. Использовал библиотеку-парсер jsoup.
Но дальше я что-то заглох, как мне сделать во первых чтобы программа перезапускалась каждую минуту (типа обновление данных) а во-вторых выдавала только объявления дешевле например 1000 рублей, либо по возрастанию в цене.


Аноним 14/09/16 Срд 16:25:21  136142523
.
Аноним 14/09/16 Срд 16:30:29  136142834
.
Аноним 14/09/16 Срд 16:34:10  136143026
>>136142268 (OP)
Чтобы повторялось - тебе нужен бесконечный цикл и Thread.sleep(), если в json есть отдельное поле с ценой, ты можешь отсортировать по ней. Вообще, лучше создать класс, который будет обозначать 1 запись из Джейсона, так будет удобнее. Гугли, прогу за тебя тут писать вряд ли кто-то будет.
Аноним 14/09/16 Срд 16:34:26  136143042
Для перезапуска - цикл while true с задержкой в 36000 мс, а для цен - хз, как ты вообще рассматриваешь цену и объявление, тупо в виде текста? Возможно нужно будет с api авито работать
Аноним 14/09/16 Срд 16:34:43  136143059
>>136142268 (OP)
Во-первых, если ты изучаешь программирование, то юзать готовые либы не камильфо. Пиши парс самостоятельно.
Во-вторых, по повторениям, в жабе это можно сделать миллионом способов, тебе проще всего будет через какой-нибудь экзекутор https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
>>136143026
> бесконечный цикл и Thread.sleep()
Убейся. Надеюсь ты нигде не работаешь.
Аноним 14/09/16 Срд 16:36:59  136143193
>>136142268 (OP)
>выдавала только объявления дешевле например 1000 рублей, либо по возрастанию в цене
Пиши свой парсер. Загоняй данные в массив из двух массивов (наименование, цена), потом перебирая и сортируя элементы двигай сразу оба элемента (наименование и цену). Таким образом отсортируешь как тебе будет надо.
Аноним 14/09/16 Срд 16:39:58  136143373
>>136143193
Я может что-то не шарю в этих ваших жабах, но зачем хранить и сортировать данные, когда их всего две категории, нужные и ненужные? И нахуя два массива, у вас там же шаблоны есть
Аноним 14/09/16 Срд 16:40:46  136143434
>>136142268 (OP)
> эклипс
Аноним 14/09/16 Срд 16:42:14  136143521
>>136143434
А что юзать? IDEA? Разве он не слишком навороченный для ньюфагов?
Аноним 14/09/16 Срд 16:42:34  136143547
>>136143373
алоуэ, пшш, пшш.. у пацана 2 массива - наименования и цены, ему нужно наименование с определенной ценой.
Через паттерны можно, но он же начинающий.
Аноним 14/09/16 Срд 16:42:45  136143556
>>136143521
> IDEA
Хули нет то?
Аноним 14/09/16 Срд 16:43:17  136143580
>>136143521
идея вообще маст, она пол кода за тебя напишет лол, самое то для ньюфагов.
Аноним 14/09/16 Срд 16:46:52  136143780
>>136142268 (OP)
Не вижу проблемы распарсить твою строчку регуляткой на
<Название товара> <цена> <адрес> <время>
Создать класс, прописать метод для сортировки, в крестах это бы выглядело как-то так,
bool AVitoListItem::operator>=(AVitoListItem& another)
а в джаве нет перегрузки, так что там я хз, и сортирнуть список таких объектов.
Аноним 14/09/16 Срд 16:49:47  136143925
>>136143059
>> бесконечный цикл и Thread.sleep()
>Убейся. Надеюсь ты нигде не работаешь.

Какие проблемы? Отдельный поток в бесконечном дергает сайт каждые 36000 мс , и запускает новый поток, который берет полученную инфу и обрабатывает дальше как ему нужно.
Аноним 14/09/16 Срд 16:51:13  136143990
>>136143780
Ну-ка напиши регулярку, я поугараю.
Аноним 14/09/16 Срд 16:53:20  136144114
>>136143925
>Отдельный поток
Ну во-первых, в первом варианте потока не было, а за такое сразу убивают нахуй. Во-вторых, если как ты во втором варианте пишешь, то экзекутор и есть поток.
>>136143780
>а в джаве нет перегрузки
В жабе тоже самое, @оверрайдится сорт и ему скармливается функция сортировки.
Аноним 14/09/16 Срд 16:54:35  136144189
>>136144114
>>136143925
Алсо, не слипать поток нужно, а мутикс выставлять. хотя вроде в жабе слипы мутиксами и тормозят исполнение, но не уверен
Аноним 14/09/16 Срд 16:57:45  136144383
>>136142268 (OP)
Ты хуево парсишь, не сможешь нормально деньги от наименования отделить, давай заново, всё хуйня.
Аноним 14/09/16 Срд 16:57:47  136144384
>>136144189
Хуютикс, будто тред в не в сон уходит когда мутекс не получает.
Аноним 14/09/16 Срд 16:58:03  136144398
Кстати сегодня кто-нибудь вообще делает оконные приложения на яве?
Аноним 14/09/16 Срд 16:59:10  136144457
>>136144398
Я лабу2 делал на свинге 5 лет назад
Аноним 14/09/16 Срд 17:01:03  136144559
>>136144398
А почему бы и нет? Для ведройда, например. Да и на десктоп неплохо налазит, jx весьма бодро фронт рисует.
Аноним 14/09/16 Срд 17:09:48  136145032
Спасибо за ответы, буду пробовать
Аноним 14/09/16 Срд 17:11:15  136145106
ОП, а ты серьезно настроен? Мимо 6-лет-ява-ынтерпрайз-кун, могу детально расписать.
Аноним 14/09/16 Срд 17:12:32  136145170
>>136145106
да
Аноним 14/09/16 Срд 17:16:28  136145407
>>136145106
Ынтерпрайз, распиши мне за то как зарубеж жабафагом перекатываться? Нужны ли сертификаты? Какие? Что спрашивают на собеседованиях? Подводные камни?
Хочу в страну солнца, счастья и аниме уехать кодировать кнопки за сладкие шекели.
Аноним 14/09/16 Срд 17:17:30  136145451
>>136145407
Кому-то и украина зарубеж.
Аноним 14/09/16 Срд 17:23:51  136145826
>>136145451
Нет же. Какая украина, ты в своем уме? Ты бы еще в киргизию предложил перекатиться.
Аноним 14/09/16 Срд 17:26:18  136145983
>>136145170
Лучшее, что я могу посоветовать для любого начинающего сей тернистый путь:
1) Б.Эккель "Философия Java"
2) Банда четырех
остальная литература строго опциональна в зависимости от стоящих перед тобой задач.

Что касается парсера из ОП-поста: наиболее простой вариант - создать класс, описывающий сущность товар (со всеми необходимыми полями и методами, реализующими операции над ними). В отельном классе парсера создается список этих товаров (условно List<AvitoItem>) который ты заполняешь при парсинге (тем же jsoup). После сбора с этим списком можешь делать все что хочешь: писать в базу, искать по нему, сортировать.

По поводу повторных запусков и постоянного мониторинга - я бы нассал в рот петушкам выше с Thread.Sleep и иже. Сборщик не должен постоянно висеть в памяти (и течь как сучка из-за jsoup) - хорошие люди придумали запуск по расписанию - это "Планировщик задач" в винде или cron в никсах. Просто ставишь раз в N минут перезапуск парсера (время высчитай сам - в зависимости от времени работы) и радуешься.
Аноним 14/09/16 Срд 17:28:21  136146120
>>136145826
Что в ней плохого?
Аноним 14/09/16 Срд 17:29:38  136146208
>>136145983
>cron в никсах
Привет, ты ведь никогда не сидел под никсами, правда?
>>136145826
Например, все. Особенно украинцы. Та же расея, вид впрофиль.
Аноним 14/09/16 Срд 17:32:14  136146386
>хорошие люди придумали запуск по расписанию - это "Планировщик задач" в винде или cron в никсах

уебывай с дивана с джавы
Аноним 14/09/16 Срд 17:33:13  136146459
>>136145170
Я сам сижу в замкадске (но правда на норм деньгах. потому и не рыпаюсь)
Знакомые уезжали довольно нетривиально - уходили работать в россиянский филиал буржуйской конторы (условный детче банк) и оттуда уезжали в гермашку.
Не сертификаты все клали хуец, вроде бы как спрашивали, но на решение не влияло. Тащемто если есть лишние деньги и время - лучше их заиметь, чем нет.

Тут еще важно понимать, что для съеба нужно УЖЕ быть не вротебическим специалистом в своей подоблости (именно! просто программист никому не нужен - вот если ты разбираешься в машинном обучении/криптоанализе/безопасности - другое дело).
Аноним 14/09/16 Срд 17:33:49  136146498
>>136146386
Удваиваю. Течь в жабе с либы это немного лол.
Аноним 14/09/16 Срд 17:35:09  136146593
>>136146459
Ясно, спасибки. Я как раз в буизнес-солюшэнз разбираюсь как положено.
Аноним 14/09/16 Срд 17:36:32  136146675
>>136146386
>Пок-пок-пок.
Ну расскажи мне, зачем парсеру который должен запускать раз в час висеть в памяти?

>>136146208
Не понял сути предъявы.
Аноним 14/09/16 Срд 17:37:40  136146758
>>136145983
В жабе же вроде есть что-то для запуска через указанный интервал, не? Timer там или ещё какая хуйня.
Аноним 14/09/16 Срд 17:38:08  136146800
>>136142268 (OP)
Я этого пидора в Ставрополе видал
Аноним 14/09/16 Срд 17:38:56  136146845
>>136146800
Какого?
Аноним 14/09/16 Срд 17:40:27  136146957
для начала удалить еклипс, дальше поставить Intellij
Аноним 14/09/16 Срд 17:41:47  136147051
>>136146498
Я лично детектил утечку памяти в этом самом jsoup правда два года назад
Больше тебе скажу, текла даже com.mysql.jdbc.Driver но это тоже было давно.
Так что да, течь с либы, лол.
Аноним 14/09/16 Срд 17:41:48  136147053
>>136146675
Не нужно никому висеть в памяти. Парсер отработал - все лишние объекты удалились через GC, висим час, ждем. JVM все равно будет работать этот час.
Аноним 14/09/16 Срд 17:42:31  136147095
>>136146675
1. Парсеру там нужно висеть, чтобы не загружаться-выгружаться туда сюда, вместе со всей жаба машиной, либами и прочей сопутствующей хуетой, долбоеба ты кусок. Нужно ведь кусочек кода повторять. Или ты для обновления вкладки в браузере весь браузер перезапускаешь?
2. Крона уже 1000 лет как нет в никсах. Системд юзают для аналогичных целей с системными сервисами. А программы под никсами по другому демонизируются вообще.
Аноним 14/09/16 Срд 17:43:19  136147143
>>136147051
Сборщик любые утечки убирает, ало, мы не в крестах кодим.
Аноним 14/09/16 Срд 17:50:20  136147612
>>136147053
>>136147095
>>136147143

Парни, вы сейчас сделали мой день. Ну вперед, проверьте это на парсере с нормальной нагрузкой, он максимум через неделю вылетит с OutOfMemory.

Верить в GC (разумеется с аккуратным подходом) я перестал на первый же год работы - просто берем http://visualvm.java.net и смотрим память: GC отработал. но останется сраных 2-3кб прироста, которые так и будут накипать.
Тащемто я свою позицю в треде уже выразил, господа теоретики - можете верить книжкам и гайдлайнам, но реальность довольно жестока;
Аноним 14/09/16 Срд 17:52:20  136147750
>>136147143
Сборщик не убирает утечки, он освобождает память объектов, на которые больше никто не ссылается, а это уже на совести программиста.
Аноним 14/09/16 Срд 17:53:21  136147827
>>136147612
>GC отработал. но останется сраных 2-3кб прироста
Щас бы экономить 2-3кб в 2к16 в ентерпрайз софте
Аноним 14/09/16 Срд 17:54:57  136147939
>>136147827
>ентерпрайз софте
>васян заказал за пятихат гонять на некропеке 2005 года
Аноним 14/09/16 Срд 17:56:32  136148043
>>136147939
> проверьте это на парсере с нормальной нагрузкой, он максимум через неделю вылетит с OutOfMemory

Хер ле ты тогда его ставишь в ентерпрайз условия.
Аноним 14/09/16 Срд 18:00:35  136148345
>>136147750
Он все вообще убирает. В жабе мне не нужно аллокейтить и релизить, если у меня массив объектов заполняется, с ним делаются всякие штуки, потом они релизятся, то я не понимаю, схуяли я еще что-то делать должен. И твои приросты это хуиты кусок, почему-то когда я несколько лет назад написал простейший генетический алгоритм с парой параметров и графической отрисовкой на lwjgl и гонял его почти два месяца на виртулаке с гигом памяти у меня ничего никуда не утекло. В работе я даже не задумываюсь об этой хуете и все ровно. Сдается мне ты пиздишь. Тесты он, блядь, ставил.
Аноним 14/09/16 Срд 18:00:51  136148370
>>136148043
Я и не ставлю, это тот додик попутал чет. У опа там дай бог 100 страниц в секунду распарсить, это просто ниочем.
Аноним 14/09/16 Срд 18:15:38  136149475
А шо, автио не может отдавать список товаров в джсоне?
У них стопудова должен быть нормальный апи для мобильных приложений
Аноним 14/09/16 Срд 18:19:23  136149758
>>136145983
Ты правильные вещи говоришь, но если чувак не знает, как ему отфильтровать коллецкцию по цене, то скедулеры и таски и даже таймеры ему рановато, тредслип самое то для понимания.
Еще акторы блять посоветуй напедалить на акке
Аноним 14/09/16 Срд 18:19:48  136149797
>>136149475

Подключение к API

API позволяет выгружать данные ещё до модерации. В базе присутствуют все категории и объявления. Обновление базы каждую секунду.

Цена - 3000 руб. в месяц (30 дней).

Чтобы получить доступ, авторизуйтесь.

Тестовый доступ на 15 дней бесплатно *

Пошел нахуй кароче а не жсон
Аноним 14/09/16 Срд 18:26:01  136150256
>>136142268 (OP)
> а во-вторых выдавала только объявления дешевле например 1000 рублей
Блять, так трудно сделать поиск в строке на числовые данные? Нашёл сумму, сравниваешь, больше или меньше 1000, если меньше - выводишь в окно, если больше - отсеиваешь.
Аноним 14/09/16 Срд 18:37:41  136151113
>>136148345
Ты хочешь сказать, что в java невозможны утечки памяти, или что?
Аноним 14/09/16 Срд 18:43:06  136151528
Я другой ньюфаг, еще более тупой вопрос.
Есть два класса
Первый вычислениями производит строку например "Hello"
Второй берет эту строку и складывает со своей, например "World"
Нужно сделать вывод строки "Hello World" во втором классе.

Аноним 14/09/16 Срд 18:45:47  136151728
>>136151528
И че не получается? Давай что сделал показывай
Аноним 14/09/16 Срд 18:50:48  136152105
>>136151728
Ну смысл в том что запуская второй класс, ему передается пустая строка, т.к. первый класс не выполняется (именно там производится информация которая передается второму классу).
Смысл в том что надо как то запускать два класса одновременно, или в два потока, хз
Аноним 14/09/16 Срд 18:52:20  136152219
>>136142268 (OP)
братишь, вот тут ещё свой вопрос задай, там погроммисты сидят http://reflink.ru/5e5
Аноним 14/09/16 Срд 18:56:45  136152537
>>136152219
Проиграл, хоть бы в шортенер обернул
Аноним 14/09/16 Срд 19:01:49  136152867
>>136152105
Код запости на pastebin

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 62 | 1 | 18
Назад Вверх Каталог Обновить

Топ тредов
Избранное