XPath не отдаёт InnerHtml

Используете ли вы XPath в своих шаблонах?

  • Да

    Голосов: 13 100,0%
  • Нет

    Голосов: 0 0,0%
  • Не знаю

    Голосов: 0 0,0%

  • Всего проголосовало
    13

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
Добрый день. XPath не отдаёт InnerHtml. Пробовал такой код
C#:
string xPath = "//*[@id='J_DivItemDesc']/div[17]";
return instance.ActiveTab.FindElementByXPath(xPath,0).InnerHtml;
Исходная страница https://item.taobao.com/item.htm?id=572750043144
Нужен innerhtml или outerhtml вот этого пути //*[@id='J_DivItemDesc']/div[17]
Заранее спасибо всем активным комментаторам.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 295
Баллы
113
XPath не отдаёт InnerHtml.
Отдаёт: 模板保护代码

Элемент как минимум стоит проверять.
C#:
string xPath = "//*[@id='J_DivItemDesc']/div[17]";
HtmlElement he = instance.ActiveTab.FindElementByXPath(xPath, 0);
project.SendWarningToLog(he.IsVoid ? "Не найден" : he.InnerHtml);
 
  • Спасибо
Реакции: kul0n

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
Отдаёт: 模板保护代码

Элемент как минимум стоит проверять.
C#:
string xPath = "//*[@id='J_DivItemDesc']/div[17]";
HtmlElement he = instance.ActiveTab.FindElementByXPath(xPath, 0);
project.SendWarningToLog(he.IsVoid ? "Не найден" : he.InnerHtml);
Всё верно. У меня отдает так же, но нужно чтобы код блока отдавал. Там ссылки на фотографии я их собираю. В хроме по блоку можно копировать outerhtml этого блока и всё берятся, а вот тут не получается. Отдает слово и всё - кода нет.
 

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
Нужно чтобы вся ветка кода html которая в нём, мне была доступна в переменной.
 

grin-du

Client
Регистрация
09.10.2017
Сообщения
96
Благодарностей
46
Баллы
18
Отдаёт: 模板保护代码

Элемент как минимум стоит проверять.
C#:
string xPath = "//*[@id='J_DivItemDesc']/div[17]";
HtmlElement he = instance.ActiveTab.FindElementByXPath(xPath, 0);
project.SendWarningToLog(he.IsVoid ? "Не найден" : he.InnerHtml);
upload_2018-8-16_19-31-54.png
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 295
Баллы
113
  • Спасибо
Реакции: Koqpe

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Попробуйте так:

Код:
var link = tab.MainDocument.FindElementsByXPath("путь Xpath");

foreach (var el in link.Elements)

{

project.Lists["Temp"].Add(el.InnerHtml);

}
Вместо InnerHtml подставьте нужные Вам данные ( src или href, не могу посмотреть код страницы) и в список Temp соберутся нужные Вам ссылки.
 
Последнее редактирование:

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