Кликнуть на пост в Инстаграме

marsel80

Client
Регистрация
09.04.2015
Сообщения
304
Благодарностей
26
Баллы
28
Помогите плиз, не могу сообразить как мне кликнуть на какое либо фото(пост) в инстаграмме(в рандомном порядке).
То есть захожу на аккаунт с вебверсии, получаю такую картину


Теперь мне нужно нажать на 1 из 6 постов(желательно рандомно), но если на аккаунте получиться меньше 6 постов, то оно кликалось бы в диапазоне от 1 до того кол-ва сколько есть но не больше 6.

В идеале как я описал выше, но если это сложно, то хотя бы на первый пост. Всем откликнувшимся, спасибо)

Возник сразу второй вопрос: зашел на аккаунт инстаграм, как чекнуть его на наличию хоть одного поста. То есть при входе на чей либо аккаунт может быть три варианта:Это закрытый аккаунт, Публикаций пока нет, Либо будут посты. два первых я выпарсил, как быть с третим? Чет ни как не могу сделать проверку. Может быть есть другой выход, когда есть 3 направления, два из которых известны уже.
 
Последнее редактирование:

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 540
Благодарностей
899
Баллы
113
там внизу кода есть джейсон-контейнер. Распарсь его, там будут шорт-коды. Из первых шести (или менее) можно выбрать один и на его основе составить ссылку, которую нужно каким-либо образом открыть или кликнуть
Или - если тебе надо попроще, то спарси код регуляркой, зацевившись за /?taken-by=
но, думаю, при втором варианте возможны косяки.
Так что парсь джейсон.
 
  • Спасибо
Реакции: marsel80

marsel80

Client
Регистрация
09.04.2015
Сообщения
304
Благодарностей
26
Баллы
28
там внизу кода есть джейсон-контейнер. Распарсь его, там будут шорт-коды. Из первых шести (или менее) можно выбрать один и на его основе составить ссылку, которую нужно каким-либо образом открыть или кликнуть
Или - если тебе надо попроще, то спарси код регуляркой, зацевившись за /?taken-by=
но, думаю, при втором варианте возможны косяки.
Так что парсь джейсон.
Могли бы уточнить какого кода? Я парсю с этой переменной {-Page.Source-} . Есть еще и {-Page.Dom-} не сильно понимаю их разницы. Так же могли скинуть этот тег на английском.
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 540
Благодарностей
899
Баллы
113
из ДОМа регуляркой
(?<=<a\ href="/p/).*?(?=/\?taken-by=)
ты выпарсишь все шорткоды постов.
добавишь их в список, проанализируешь.
Потом подставляее один из них в ссылку ты откроешь нужный пост
Конечно, при наличии джейсона вытаскивать данные регулярками их ДОМа - это как гланды через жопу удалять.
Ну так ведь чего только ради высокого искусства не сделаешь)))
 
  • Спасибо
Реакции: marsel80

marsel80

Client
Регистрация
09.04.2015
Сообщения
304
Благодарностей
26
Баллы
28
из ДОМа регуляркой
(?<=<a\ href="/p/).*?(?=/\?taken-by=)
ты выпарсишь все шорткоды постов.
добавишь их в список, проанализируешь.
Потом подставляее один из них в ссылку ты откроешь нужный пост
Конечно, при наличии джейсона вытаскивать данные регулярками их ДОМа - это как гланды через жопу удалять.
Ну так ведь чего только ради высокого искусства не сделаешь)))
Спасибо тебе добрый человек) Все получилось, но терь нужно именно кликнуть на пост, а не перейти по ссылке. Короче типо имитирую что я не ботик)
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 540
Благодарностей
899
Баллы
113
да что-то там совсем скриптами все наворочено. Тут нужно скрипты копать. Или в любом случае кликом по координатам можно сделать
 

barkasian

Client
Регистрация
03.12.2014
Сообщения
127
Благодарностей
137
Баллы
43
Как-то так...
PHP:
Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate("https://www.instagram.com/cristiano/", "");
if (tab.IsBusy) tab.WaitDownloading();

Random rnd = new Random();
HtmlElementCollection fotos = tab.FindElementsByXPath("//a[contains(@href, 'taken-by')]");

int i = rnd.Next(1, fotos.Count);
string rndUrl = fotos.Elements[i].GetAttribute("href");

tab.Navigate(rndUrl, "https://www.instagram.com/cristiano/");
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
 

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