Проверка количества фотографий в объявлении

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
Доброго времени, самое лучше сообщество в мире!

Есть три сайта с объявлениями:

1. https://r.onliner.by/ak

2. https://realt.by/rent/flat-for-long/

3. https://re.kufar.by/l/minsk/snyat/kvartiru-dolgosrochno/1k

Я написал парсинг объявлений с этих сайтов. Но мне надо, чтоб проект проверял количество фотографий в каждом объявлении и если в объявлении меньше 3 фотографий, проходил по красной ветке.

Помогите, пожалуйста, с проверкой количество фотографий на каждом из этих трех сайтов. ТОЛЬКО ПРОВЕРКА КОЛИЧЕСТВА ФОТО В ОБЪЯВЛЕНИИ, БОЛЬШЕ НИЧЕГО! Кто поможет, не только нажму на "Спасибо", но и, в случае, если это окажется качественная проверка, готов отблагодарить в размере 600 рублей.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
ну раз написал парсинг, значит нет проблем спарсить url этих картинок , скинуть их в список и получить количество строк, и сделать проверку на нужное количество ?
какой пункт вызывает вопросы ?
 
  • Спасибо
Реакции: Mikhail B.

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
Вот че-то не получается спарсить фото...
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
С первыми двумя всё, относительно, просто - клик ПКМ по миниатюре картинки, "Парсить данные".
Добавляете в проект, результат сохраняется в список. Потом "Операции над списком"-"Количество строк" (если будет использоваться один и тот же список, то не забываейте его очищать между выполнениями).

Третий чуть сложней, но самый простой вариант - выпарсить кол-во фото из подсказки:
67158

Или тоже с помощью "Парсить данные", но придётся вручную составлять XPath/CSSSelector.
 
  • Спасибо
Реакции: Mikhail B.

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
Я до 3-го не дошел, со вторым согласен - там просто, а с первым, который - https://r.onliner.by/ak - нифига у меня не получается...
 

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
nicanil, в список парсится не само количество, а название, то бишь, открываешь список, а там всего одна где указано сколько фото - "4 фото".
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
nicanil, когда я кликаю правой кнопкой на миниатюрку и нажимаю спарсить данные и положить в лист, вот что у меня получается:
 

Вложения

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
Конечно, можно этот результат положить в переменную, в переменной оставить только цифру убрав слово "фото" и создать проверку по логике, но, вы говорили, что в список кладется именно количество по строкам, а не само название...
 

Эдгар

Client
Регистрация
20.03.2020
Сообщения
112
Благодарностей
5
Баллы
18
В принципе, с двумя сайтами разобрался. Но помогите, пожалуйста с этим - https://r.onliner.by/ak

Тут вообще ничего не получается...
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Во вложении шаблон. Посмотрите его.
Сделал так, как описывал в своих сообщениях выше.
Если что-то будет непонятно по нему, то спрашивайте.
 

Вложения

  • Спасибо
Реакции: Эдгар

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
onliner:
string DOM = instance.ActiveTab.DomText;
string Pattern = @"(?<=https://content).*?\.jpeg";
if(DOM.Contains("https://content.onliner.by")){
    List<string> list = new List<string>(Macros.TextProcessing.Regex(DOM, Pattern).Select(g => g.FirstOrDefault()));
    if(list.Count > 0){
        List<string> images = new List<string>();
        foreach(string img in list){
            string img_name = img.Split('/')[img.Split('/').Count()-1];
            if(images.IndexOf(img_name) < 0)
                images.Add(img_name);
        }
        return images.Count;
    }
    else project.SendInfoToLog("фотографий нет", true);

}
kufar:
project.Json.FromString(Regex.Match(instance.ActiveTab.DomText, @"(?<=data"":\{""gallery"":).*?}").Value);
return Convert.ToString(project.Json.images.Count);
realt:
string DOM = instance.ActiveTab.DomText;
string Pattern = @"(?<=class=""photo-item"").*?(?=>)";
List<string> list = new List<string>(Macros.TextProcessing.Regex(DOM, Pattern).Select(g => g.FirstOrDefault()));
return list.Count;
исправил, так как не понял, с каким по счету сайтом проблема. Добавил все 3
 
Последнее редактирование:
  • Спасибо
Реакции: userx

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