Как найти последнюю фотографию в чате в Телеграм?

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

clocky

Client
Регистрация
26.09.2019
Сообщения
397
Реакции
72
Баллы
28
Друзья, стоит задача взять ссылку именно на последнюю фотографию из чата в телеграмме в веб версии. Как это можно сделать?
 
В том то и дело, что не очень понимаю как это сделать, пробовал парсить данные, один/картинки. Пробовал через конструктор действий "tagname - img". Но понимаю, что это бред. Получается так, я пишу боту какой то текст, он выдает картинку, мне её надо забрать.
 
В том то и дело, что не очень понимаю как это сделать, пробовал парсить данные, один/картинки. Пробовал через конструктор действий "tagname - img". Но понимаю, что это бред. Получается так, я пишу боту какой то текст, он выдает картинку, мне её надо забрать.
через xpath лучше искать. вот хорошая статья для понимания https://zennolab.com/discussion/threads/obzor-zennoposter-xpath-na-primere-jandeks-marketa.37497/
 
через xpath лучше искать. вот хорошая статья для понимания https://zennolab.com/discussion/threads/obzor-zennoposter-xpath-na-primere-jandeks-marketa.37497/
Я не очень силен, но получается примерно такой запрос
//div[@my-message-body='historyMessage']/descendant::img[@class='im_message_photo_thumb']
а как выбирать именно последний?
 
Последнее редактирование:
//div[@my-message-body='historyMessage']/descendant::img[@class='im_message_photo_thumb']
C#:
Развернуть Свернуть Копировать
[last()]
Надо добавить, что xPath вернул true последнему элементу коллекции.
Это как индекс, только форума.
 
C#:
Развернуть Свернуть Копировать
[last()]
Надо добавить, что xPath вернул true последнему элементу коллекции.
Это как индекс, только форума.
Что с этим делать?) Извиняюсь, но правда не понимаю..
 
Так попробуй
C#:
Развернуть Свернуть Копировать
//div[@my-message-body='historyMessage']/descendant::img[@class='im_message_photo_thumb'][last()]

Это означает последний
C#:
Развернуть Свернуть Копировать
[last()]
Ты в веб версии открыл чат с которого надо выпарсить последнюю картинку?
 
74073


Что-то не получается..
 
Что-то не получается..
Нажми в браузере решение для разработчиков (правый клик, в контекстном меню показать код).
Потом Ctrl + F в самом низу появиться незаметная такая строчка, туда вставляй xpath путь.
Желтым будет подсвечиваться твой выбор. Наведение мышкой на желтый элемент, будет подсвечиваться визуально сам элемент на странице.

отфильтровали
1.png
Добавили в конце last() в скобках [] - и получили последний элемент отвечающий заданным критериям
2.png
 
Нажми в браузере решение для разработчиков (правый клик, в контекстном меню показать код).
Потом Ctrl + F в самом низу появиться незаметная такая строчка, туда вставляй xpath путь.
Желтым будет подсвечиваться твой выбор. Наведение мышкой на желтый элемент, будет подсвечиваться визуально сам элемент на странице.

отфильтровали
Посмотреть вложение 74074
Добавили в конце last() в скобках [] - и получили последний элемент отвечающий заданным критериям
Посмотреть вложение 74075
Ну не знаю))) 4 последних?)
 

Вложения

  • Снимок экрана 2021-03-17 в 00.28.43.png
    Снимок экрана 2021-03-17 в 00.28.43.png
    19,7 KB · Скачивания: 130

Вложения

  • Снимок экрана 2021-03-17 в 00.31.50.png
    Снимок экрана 2021-03-17 в 00.31.50.png
    14,5 KB · Скачивания: 127
Ладно, просто счетчик поставил, вроде работает) Но теперь почему-то не сохраняется картинка...
 
Применяется, твою строку скопировал.
2 из 4 надо сузить круг поиска.
Сперва зацепить за уникальный элемент выше, что-то особенное надо искать, id или class.
Если в свойстве класса или id есть два свойства, например: <div class="gopa_mira prosto_gopa">, то надо использовать contains(class, 'НУЖНЫЙ ОДИНОЧНЫЙ КЛАСС').
Такие [] означают - фильтрацию:

элемент[фильтрация]/элемент[фильтрация].

например:
HTML:
Развернуть Свернуть Копировать
<div class="gopa_mira prosto_gopa">
    <img class="msk">
    <img class="spb">
</div>
так ты выберешь div
HTML:
Развернуть Свернуть Копировать
//div[contains(@class, 'gopa_mira')]
Так все картинки в диве жопа мира.
HTML:
Развернуть Свернуть Копировать
//div[contains(@class, 'gopa_mira')]/img
так последнюю картинку из картинок находящихся в диве с классом "жопа мира"
HTML:
Развернуть Свернуть Копировать
//div[contains(@class, 'gopa_mira')]/img[last()]
 
  • Оценить
Реакции: clocky
В итоге получился такой XPATH

//div [@class='im_history_message_wrap'][last()]/descendant::img[@class='im_message_photo_thumb']

Думаю он будет универсальным, если хотите получить картинку.
 

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