Вопрос по Xpath

Geka1989

Client
Регистрация
17.12.2016
Сообщения
184
Благодарностей
23
Баллы
18
Необходимо взять все ссылки с выдачи гугла, как кликнуть по определенному номеру ссылки разобрался
Код:
instance.ActiveTab.WaitDownloading();
string xpath1 = "//*[@id='rso']/div/div/div[2]/div/div/div[1]/a/div";
var post1 = instance.ActiveTab.FindElementByXPath(xpath1, 0);
if (!post1.IsVoid)
    {
        post1.Click();
    }
else
    {
        return "не нашли элемент";
    }
а вот как найти все ссылки и положить их в список, никак понять не могу
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 931
Благодарностей
6 389
Баллы
113
скрин бы с указанием что надо брать и куда класть
 

Geka1989

Client
Регистрация
17.12.2016
Сообщения
184
Благодарностей
23
Баллы
18

Вложения

backoff

Client
Регистрация
20.04.2015
Сообщения
5 931
Благодарностей
6 389
Баллы
113
а чем регулярка не подходит?
или все обязательно в шарпе должно быть?
 

Geka1989

Client
Регистрация
17.12.2016
Сообщения
184
Благодарностей
23
Баллы
18
а чем регулярка не подходит?
или все обязательно в шарпе должно быть?
Бывают длинные ссылки и регулярка не всегда корректно берет, может взять не полную ссылку которая потом просто не открывается, да и сам гугл очень часто меняет id элементов, постоянно менять регулярку как то не особо удобно
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 512
Благодарностей
8 702
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 931
Благодарностей
6 389
Баллы
113
твой xPath неверный (если надо брать все ссылки)

создай список c названием - links
и запили этот код в c# кубик

Код:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//div[@class='med']//cite");
foreach (var el in ab.Elements){
    project.Lists["links"].Add(el.InnerHtml);
}
ps \ а вообще да, "парсить страницу" удобнее
 
Последнее редактирование:
  • Спасибо
Реакции: Geka1989

Geka1989

Client
Регистрация
17.12.2016
Сообщения
184
Благодарностей
23
Баллы
18
твой xPath неверный (если надо брать все ссылки)

создай список c названием - links
и запили этот код в c# кубик

Код:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//div[@class='med']//cite");
foreach (var el in ab.Elements){
    project.Lists["links"].Add(el.InnerHtml);
}
ps \ а вообще да, "парсить страницу" удобнее
Спасибо, работает!
Версия зенки 5.11.4.0 парсить страницы нет, так что придется пока так все делать
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 931
Благодарностей
6 389
Баллы
113

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