Парсер сайта

  • Автор темы Автор темы BPOH
  • Дата начала Дата начала

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Реакции
28
Баллы
28
Здравствуйте, пытаюсь написать качалку обновлений програм не понимаю с чего начать, буду рад если подскажете варианты решения, просто алгоритм действий, чтоб дальше пытался разобраться в zennoposter
Сейчас все эти этапы просто записью прошёл, и оно скачивает в временную папку, тут вопрос вот в чём как правильнее сделать напарсить URL в список и както сравнивать? или получать файлы из каталога какие уже есть и тоже както сравнивать, что то что то пока както сложно для меня выглядит, хочу мнение опытных ребят как бы они подступались к данной задаче? Версии обновления переодически выходят нужно их както скдладывать на комп...
 

Вложения

  • 1.png
    1.png
    59,2 KB · Просмотры: 118
  • 2.png
    2.png
    61,5 KB · Просмотры: 117
  • 3.png
    3.png
    107,3 KB · Просмотры: 107
  • 4.png
    4.png
    79,5 KB · Просмотры: 106
Самый логичный вариант - держать где-то список последних версий (таблица, список, база данных).
Сперва проверять на появление новой версии у каждой программы. Если не обновилась, пропускаем, если обновилась, скачиваем (при необходимости - раскладываем по папкам и/или меняем название файла, указывая версию), в таблице меняем версию на последнюю.
Дальше вопрос технической реализации.
 
  • Оценить
Реакции: Alexbrush
Самый логичный вариант - держать где-то список последних версий (таблица, список, база данных).
Сперва проверять на появление новой версии у каждой программы. Если не обновилась, пропускаем, если обновилась, скачиваем (при необходимости - раскладываем по папкам и/или меняем название файла, указывая версию), в таблице меняем версию на последнюю.
Дальше вопрос технической реализации.
А если просто всегда забирать последнюю ячейку типа 0 совпадение парсить сравнивать с пачкой файлов в папке... блин всёравно я пытаюсь как лентяй быстро быстро найти решение не сильно погружаясь и делая как надо а как попало) Вы правы нужно БД спарсить все линки и по ним проверку делать, подскажите пожалуйста как сделать этот базовый if если ссылка отсутствует в таблице? И ещё как правильнее реализовать повторный парсинг сравнения существующих URL с вновь спарсенными (базовые вопросы иди парень читай документацию...) простите!
 
Ну, ты можешь либо качать все версии каждый день, но тогда у тебя будет куча дублей.
Либо, как я сказал, смотреть. появилась ли новая версия. Чтобы смотреть, надо знать, какая последняя версия была скачана. Можешь в названия файлов тогда записывать, если хранить нигде не не надо. Взял программу, посмотрел в папке, какая последняя лежит (по маске находим в папке нужные файлы, сортируем по названию, сверяем), если появилась новее - качаем.
Не нужна тебе БД, я просто как один из вариантов, где хранить данные привел.
Пришел на стрнаницу, спарсил данные по всем программам (программа - версия - ссылка), сравнил каждую программу с тем, что уже есть. Если версия новее, качаешь. Если уже была, смотришь следующую.
Ты спрашивал про логику работы и как ее выстроить. Я предложил )) Про реализацию кубиков и т.д. - тут, да, лучше смотреть мануалы. Иначе смысл теряется, проще заказать готовое решение, стоить будет недорого.
 
Ну, ты можешь либо качать все версии каждый день, но тогда у тебя будет куча дублей.
Либо, как я сказал, смотреть. появилась ли новая версия. Чтобы смотреть, надо знать, какая последняя версия была скачана. Можешь в названия файлов тогда записывать, если хранить нигде не не надо. Взял программу, посмотрел в папке, какая последняя лежит (по маске находим в папке нужные файлы, сортируем по названию, сверяем), если появилась новее - качаем.
Не нужна тебе БД, я просто как один из вариантов, где хранить данные привел.
Пришел на стрнаницу, спарсил данные по всем программам (программа - версия - ссылка), сравнил каждую программу с тем, что уже есть. Если версия новее, качаешь. Если уже была, смотришь следующую.
Ты спрашивал про логику работы и как ее выстроить. Я предложил )) Про реализацию кубиков и т.д. - тут, да, лучше смотреть мануалы. Иначе смысл теряется, проще заказать готовое решение, стоить будет недорого.
меня только сравнение в ступор вводит пока, я не понимаю как сравнивать, допустим напарсил в файл ссылок которые уже скачены, появилась новая ссылка как сделать сравнение не обнаружилась она в файле, скрипт идёт по ветке "если" на странице версий там парсится сразу 10 ссылок или это каждую нужно брать проганять по существующему списку?
 
В ходе дискуссии пока такая мысль пришла, парсим 10 строк фигачим в список берём строку прогоняем по списку если нет то качаем успешно? добавляем в список, мне всегда кажется что мои реализации и мысли от недостачи опыта решаются всегда какими-то костылями и есть всегда решения элегантнее...(
 
Зачем тебе парсить в файл ссылки? Вообще, в файл. Ты парсишь номер версии. Сравниваешь с номером версии, которую качал последнюю. Одно кладешь в одну переменную, другое - в другую. Сравниваешь две переменные. Если равны, ничего не делаешь, если не равны, качаешь (после этого меняешь у себя номер последней версии на текущий).
Можно ссылками, конечно, если хочешь. Но не знаю, что там в этих ссылках. Сравнить, какие ссылки были уже и какие сейчас - не проблема. Если устраиваются ссылки - сравнивай ссылками. Тогда все предыдущие держи в каком-нибудь текстовом файле, с которым сверяешься.
ps. С "элегантнее" потом будешь уже заморачиваться. У тебя базово пока пробел, научись сперва делать "хоть как-нибудь", чтобы работало )) Потом будешь с опытом дорабатывать схему.
 
Сравниваешь с номером версии, которую качал последнюю.
Спасибо за дельное замечание, буду ковыряться в этом направлении, действительно просто нужно научиться работать с содержимим каталога, это же идеально посмотрел что есть докачал недастающее...
 
Зачем тебе парсить в файл ссылки? Вообще, в файл. Ты парсишь номер версии. Сравниваешь с номером версии, которую качал последнюю. Одно кладешь в одну переменную, другое - в другую. Сравниваешь две переменные. Если равны, ничего не делаешь, если не равны, качаешь (после этого меняешь у себя номер последней версии на текущий).
Можно ссылками, конечно, если хочешь. Но не знаю, что там в этих ссылках. Сравнить, какие ссылки были уже и какие сейчас - не проблема. Если устраиваются ссылки - сравнивай ссылками. Тогда все предыдущие держи в каком-нибудь текстовом файле, с которым сверяешься.
ps. С "элегантнее" потом будешь уже заморачиваться. У тебя базово пока пробел, научись сперва делать "хоть как-нибудь", чтобы работало )) Потом будешь с опытом дорабатывать схему.
Подскажи пожалуйста каким образом сравнить выкаченные значения с цифрами на сайте, в папке они получаются както так, может регулярное какоето выражение?
 

Вложения

  • 2024-04-26_13-54.png
    2024-04-26_13-54.png
    12,7 KB · Просмотры: 95
  • 2.png
    2.png
    61,5 KB · Просмотры: 100
Получить значение версии последнего скачанного файла нужной программы (список файлов в папке (если надо, по маске), сортировка, взятие нужной строки). Приведение его к виду, как на сайте (ну или прямое сравнение, если прямо такое название файла в ссылке, допустим), дальше сравнение с последним значением на сайте.
Дроби задачу, не мысли общей картиной сразу.
1. Получить в переменную значение последней версии нужной программы в папке.
2. Получить в другую переменную значение последней версии на сайте.
3. Привести их к какому-то единому виду (пофиг, какой к какому, главное, чтобы формат был один).
4. Сравнить.
Исходя из того, совпадают или нет, пойти делать разные вещи.
Здесь даже зеннопостер пока не нужен, сперва логику в голове или "на салфетке" построй.
 
Получить значение версии последнего скачанного файла нужной программы (список файлов в папке (если надо, по маске), сортировка, взятие нужной строки). Приведение его к виду, как на сайте (ну или прямое сравнение, если прямо такое название файла в ссылке, допустим), дальше сравнение с последним значением на сайте.
Дроби задачу, не мысли общей картиной сразу.
1. Получить в переменную значение последней версии нужной программы в папке.
2. Получить в другую переменную значение последней версии на сайте.
3. Привести их к какому-то единому виду (пофиг, какой к какому, главное, чтобы формат был один).
4. Сравнить.
Исходя из того, совпадают или нет, пойти делать разные вещи.
Здесь даже зеннопостер пока не нужен, сперва логику в голове или "на салфетке" построй.
Ну да) вот про логику какраз этот тред и был начат) очень трудно вначале логику в порядок привезти, а потом уже гуглить реализацию, спасибо огромное! буду пробовать...
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)