Парсер сайта

BPOH

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

Вложения

  • 59,2 КБ Просмотры: 46
  • 61,5 КБ Просмотры: 47
  • 107,3 КБ Просмотры: 36
  • 79,5 КБ Просмотры: 30

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 633
Благодарностей
1 229
Баллы
113
Самый логичный вариант - держать где-то список последних версий (таблица, список, база данных).
Сперва проверять на появление новой версии у каждой программы. Если не обновилась, пропускаем, если обновилась, скачиваем (при необходимости - раскладываем по папкам и/или меняем название файла, указывая версию), в таблице меняем версию на последнюю.
Дальше вопрос технической реализации.
 
  • Спасибо
Реакции: Alexbrush

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Благодарностей
28
Баллы
28
Самый логичный вариант - держать где-то список последних версий (таблица, список, база данных).
Сперва проверять на появление новой версии у каждой программы. Если не обновилась, пропускаем, если обновилась, скачиваем (при необходимости - раскладываем по папкам и/или меняем название файла, указывая версию), в таблице меняем версию на последнюю.
Дальше вопрос технической реализации.
А если просто всегда забирать последнюю ячейку типа 0 совпадение парсить сравнивать с пачкой файлов в папке... блин всёравно я пытаюсь как лентяй быстро быстро найти решение не сильно погружаясь и делая как надо а как попало) Вы правы нужно БД спарсить все линки и по ним проверку делать, подскажите пожалуйста как сделать этот базовый if если ссылка отсутствует в таблице? И ещё как правильнее реализовать повторный парсинг сравнения существующих URL с вновь спарсенными (базовые вопросы иди парень читай документацию...) простите!
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 633
Благодарностей
1 229
Баллы
113
Ну, ты можешь либо качать все версии каждый день, но тогда у тебя будет куча дублей.
Либо, как я сказал, смотреть. появилась ли новая версия. Чтобы смотреть, надо знать, какая последняя версия была скачана. Можешь в названия файлов тогда записывать, если хранить нигде не не надо. Взял программу, посмотрел в папке, какая последняя лежит (по маске находим в папке нужные файлы, сортируем по названию, сверяем), если появилась новее - качаем.
Не нужна тебе БД, я просто как один из вариантов, где хранить данные привел.
Пришел на стрнаницу, спарсил данные по всем программам (программа - версия - ссылка), сравнил каждую программу с тем, что уже есть. Если версия новее, качаешь. Если уже была, смотришь следующую.
Ты спрашивал про логику работы и как ее выстроить. Я предложил )) Про реализацию кубиков и т.д. - тут, да, лучше смотреть мануалы. Иначе смысл теряется, проще заказать готовое решение, стоить будет недорого.
 

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Благодарностей
28
Баллы
28
Ну, ты можешь либо качать все версии каждый день, но тогда у тебя будет куча дублей.
Либо, как я сказал, смотреть. появилась ли новая версия. Чтобы смотреть, надо знать, какая последняя версия была скачана. Можешь в названия файлов тогда записывать, если хранить нигде не не надо. Взял программу, посмотрел в папке, какая последняя лежит (по маске находим в папке нужные файлы, сортируем по названию, сверяем), если появилась новее - качаем.
Не нужна тебе БД, я просто как один из вариантов, где хранить данные привел.
Пришел на стрнаницу, спарсил данные по всем программам (программа - версия - ссылка), сравнил каждую программу с тем, что уже есть. Если версия новее, качаешь. Если уже была, смотришь следующую.
Ты спрашивал про логику работы и как ее выстроить. Я предложил )) Про реализацию кубиков и т.д. - тут, да, лучше смотреть мануалы. Иначе смысл теряется, проще заказать готовое решение, стоить будет недорого.
меня только сравнение в ступор вводит пока, я не понимаю как сравнивать, допустим напарсил в файл ссылок которые уже скачены, появилась новая ссылка как сделать сравнение не обнаружилась она в файле, скрипт идёт по ветке "если" на странице версий там парсится сразу 10 ссылок или это каждую нужно брать проганять по существующему списку?
 

BPOH

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

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 633
Благодарностей
1 229
Баллы
113
Зачем тебе парсить в файл ссылки? Вообще, в файл. Ты парсишь номер версии. Сравниваешь с номером версии, которую качал последнюю. Одно кладешь в одну переменную, другое - в другую. Сравниваешь две переменные. Если равны, ничего не делаешь, если не равны, качаешь (после этого меняешь у себя номер последней версии на текущий).
Можно ссылками, конечно, если хочешь. Но не знаю, что там в этих ссылках. Сравнить, какие ссылки были уже и какие сейчас - не проблема. Если устраиваются ссылки - сравнивай ссылками. Тогда все предыдущие держи в каком-нибудь текстовом файле, с которым сверяешься.
ps. С "элегантнее" потом будешь уже заморачиваться. У тебя базово пока пробел, научись сперва делать "хоть как-нибудь", чтобы работало )) Потом будешь с опытом дорабатывать схему.
 

BPOH

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

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Благодарностей
28
Баллы
28
Зачем тебе парсить в файл ссылки? Вообще, в файл. Ты парсишь номер версии. Сравниваешь с номером версии, которую качал последнюю. Одно кладешь в одну переменную, другое - в другую. Сравниваешь две переменные. Если равны, ничего не делаешь, если не равны, качаешь (после этого меняешь у себя номер последней версии на текущий).
Можно ссылками, конечно, если хочешь. Но не знаю, что там в этих ссылках. Сравнить, какие ссылки были уже и какие сейчас - не проблема. Если устраиваются ссылки - сравнивай ссылками. Тогда все предыдущие держи в каком-нибудь текстовом файле, с которым сверяешься.
ps. С "элегантнее" потом будешь уже заморачиваться. У тебя базово пока пробел, научись сперва делать "хоть как-нибудь", чтобы работало )) Потом будешь с опытом дорабатывать схему.
Подскажи пожалуйста каким образом сравнить выкаченные значения с цифрами на сайте, в папке они получаются както так, может регулярное какоето выражение?
 

Вложения

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 633
Благодарностей
1 229
Баллы
113
Получить значение версии последнего скачанного файла нужной программы (список файлов в папке (если надо, по маске), сортировка, взятие нужной строки). Приведение его к виду, как на сайте (ну или прямое сравнение, если прямо такое название файла в ссылке, допустим), дальше сравнение с последним значением на сайте.
Дроби задачу, не мысли общей картиной сразу.
1. Получить в переменную значение последней версии нужной программы в папке.
2. Получить в другую переменную значение последней версии на сайте.
3. Привести их к какому-то единому виду (пофиг, какой к какому, главное, чтобы формат был один).
4. Сравнить.
Исходя из того, совпадают или нет, пойти делать разные вещи.
Здесь даже зеннопостер пока не нужен, сперва логику в голове или "на салфетке" построй.
 

BPOH

Client
Регистрация
11.04.2019
Сообщения
129
Благодарностей
28
Баллы
28
Получить значение версии последнего скачанного файла нужной программы (список файлов в папке (если надо, по маске), сортировка, взятие нужной строки). Приведение его к виду, как на сайте (ну или прямое сравнение, если прямо такое название файла в ссылке, допустим), дальше сравнение с последним значением на сайте.
Дроби задачу, не мысли общей картиной сразу.
1. Получить в переменную значение последней версии нужной программы в папке.
2. Получить в другую переменную значение последней версии на сайте.
3. Привести их к какому-то единому виду (пофиг, какой к какому, главное, чтобы формат был один).
4. Сравнить.
Исходя из того, совпадают или нет, пойти делать разные вещи.
Здесь даже зеннопостер пока не нужен, сперва логику в голове или "на салфетке" построй.
Ну да) вот про логику какраз этот тред и был начат) очень трудно вначале логику в порядок привезти, а потом уже гуглить реализацию, спасибо огромное! буду пробовать...
 

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