Сап двач, как проще всего распарсить страницу?Есть базовые знания Python, JS, Java, Selenium, jQuery.На странице просто таблица с названиями и ценами предметов, я хочу получать уведомление когда в таблице появится предмет с более дешевой или дорогой ценой.
>>216467736 (OP)желательно на джаве, потому что я не могу в ооп на питоне и не хочу велосипед придумывать
>>216467736 (OP)> более дешевой или дорогой ценойЦена может быть высокой или низкой, быдло. А дешевеет и дорожает товар.С такой небрежностью мышления нечего делать в программировании.
>>216467802Я через htmlunit парсил парсю и буду парсить сайты с хентаем. В реализации просто, если хтмл вообще не понимаешь иксМл ващет но пох то лучше посмотри базовые принципы там, воооот хз че сказать все тут
>>216467736 (OP)> Есть базовые знания Python, JS, Java, Selenium, jQuery.Если они есть, тогда ты знаешь что делать. Нахуй спрашиваешь-то?
>>216468302потому что на js мне привычнее всего с сайтами работать, хотя кто-то говорит что python это топ язык для парса. хочу понять как проще всего это сделать. опыт только учебный, на практике таким не занимался еще.>>216468153хтмл и DOM понимаю конечно. спс.>>216468009да я для себя, не агрись
Может ли существовать какая-то защита против парса?Почему-то не могу выбрать элемент по id и class (с помощью getElementById и через cssQuery тоже). По тэгу получается.На другом ссайте все как по маслу по классу выбралось.
>>216469212Если решишь делать на пистоне, то Beautiful Soup лучше всего для этого подходитПро защиту от парса никогда не слышал, спарси целиком страницу да посмотри, есть там те теги, что ты ищешь или нет
>>216469396два чая этому. Пистон лучше всего подойдёт для парсинга, гугл в помощь. Под него библиотек много заточено
>>216469212Например >>216469525спс, хуй знает че-то soup на джаве не хочет работать искать по Id, сейчас на питоне попробую
>>216467736 (OP)Станица какая? В инете?Тогда вот говнокод-алгоритм за 60 секундwhile (true) { // Качаешь страницу (метод get), десериализуешь нужный <table>, сравниваешь со скачанной до этого if (новая скачанная отличается) { // мапишь в модель, сравниваешь цены } Thread.Sleep(10000) // раз в 10 секунд}Все это заливаешь куда нить на vps, идёшь пить чай
>>216470564спасибо. блин, может ты знаешь как это можно решить? Вот страница http://l2on.net/?c=market&a=item&id=92236.Почему-то и BeautifulSoup и jsoup на джаве видят все кроме собственно самой таблицы(а точнее раздела <div id="shops">). Почему такое может быть? Я подумал что из-за того что таблица грузится позже чем происходит парс, но таймер никак не помагает.
>>216469396У нас стоит защита от парсинга. Триггерится от небольшого кол-ва запросов и еще некоторых вещей, не буду говорить каких.
>>216470955Так, я понял. Это происходит потому-что по дефолту ищет на другом сервере. URL один и тот же то есть мне нужно сначала коннектнутся к странице, выбрать сервер, а потом уже парсить. Есть ли способ куки передать при коннекте?
>>216471068Справа нужно сервер выбрать(Scarlet) что бы таблица появилась. Я еблан и забыл про это потому, чтоу меня просто по дефолту он выбран уже.
>>216467736 (OP)>PythonСмотри модули, какие точно я не помню, big data, питон охуенно заточен под это.
>>216471136Я не у пекарни щас, так бы нахуярил что нить. Правда я по с#, но для таких вещей простых тут от жавы отличий минимум.А касательно автовыбора - открой консоль в браузере, раздел network, да посмотри что происходит при выборе>>216470564 кун
На nodeJs либа есть, cheerio. В нее просто загружаешь хтмл, можно простым гет запросом его получить. Далее работаешь как с jquery просто. Успешно парсил этой хуйней один сайтец
>>216471348азербайджанка>>216471358играю в l2 essence и хочу следить за рынком что бы успевать купить всякую хуйню по дешовке. На этом сайте какие-то гении программирования научились собирать информацию с ин-гейм рынка.короче json файла там не было, зато была ссылка на загрузку этой страницы с нужным выбранным миром
>>216471349Да зачем либа для каждой мелочи?Почему блин джуны современные любят библиотеки юзать, и тянуть дохуя из сети из за мелочи?Можно ж всю страницу записать в стрингу, и регуляркой что угодно дергать похмельный олдфаг шарпист
>>216471349Еще проще вариант, если у них через жс данные для твоей таблицы тянутся просто найти этот запрос во вкладке сеть в браузере, и на него ломиться в коде, теоретически сразу получишь json какой-нибудь со всей инфой. Если там токены какие-то защитные есть, типа csrf, его можно так же через cheerio вытянуть со страницы, предварительно загрузив ее.
>>216471456Ну да, хотя бы страница с выбранным миром, тоже хорошо и говорит что СКОРЕЕ ВСЕГО их сайт делал говнокодер, а значит СКОРЕЕ ВСЕГО никакой защиты от парминга там нет
>>216471524Потому что это удобно и экономит время. Если мне нужно просто говносайт спарсить для личных нужд, то нахуй мне ебаться с составлением регулярок, когда можно подтянуть либу и работать с DOM с таким же синтаксисом как на старом добром жидквери?
>>216471639В целом ты прав, да. С современным инетом npm install работает быстро.Просто я старпёр и меня коробит от пушек по воробьями, лол
>>216467736 (OP)А ты уверен, что это именно страница с сервер-сайд рендерингом и не более того? Если эта страница запрашивает данные с API в формате типа JSON, то работать с этим апи-эндпоинтом будет куда проще.Если такого нету и придётся работать с html - поищи для своего любимого языка либу для парсинга xml/html или адаптер селениума. Последний более громоздкий, но работу точно сделает.
>>216471810>>216471544Сукко, для следующего проекта ради лулзов сделаю чтоб данные с апиконтроллера возвращались в бинарном формате типа tlv(stlv) в виде массива байт, лол
>>216471544насколько я понимаю ссылка с &setworld=3502 инициирует загрузку страницы с нужным мне куки, в результате чего страница грузится уже со всей нужной информацией. То что ты говоришь может мне как-то помочь? Подгрузки json-ов не наблюдаю.Я вроде знаю что делать дальше, всем спасибо. Если есть еще советы, то я прочитаю.
>>216471718Ну конечно, для каждого сата будем АСТ строить и токенайзер писать.Че мы как лохи. А регуляркой парсить что то сложнеее <p>hello world</p> то еще.мимо-любитель парсить нодой чепопало
Кста, что мне с этим делать? Если я введу рандомное время до следующего чека это поможет? Проверять планирую раз в минут 10.
>>216472021так же при коннекте, я могу выбрать .userAgent, то есть браузер. Если я рандомные браузеры разные буду вставлять то это поможет?
>>216472021Этот варнинг просто гугл аналитику блокнул, потому что она со стороннего сайта тянется, а разраб не подумал о cors, хуй вообще забей
Так, вроде написал почти все, подскажите плз как из<td class="right" order="8900000">8 900 000</td>вытянуть 8900000 с помощью css селектора? Это же не аттрибут, верно?