Как вытащить со страницы определенную строчку текста?

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

vitaz84

Новичок
Регистрация
29.01.2015
Сообщения
25
Реакции
0
Баллы
1
Добрый день
подскажите ответ на такой вопрос, мне нужно через сервис whois сайта рег или других сервисов спарсить определенную строку со страницы.
Например
открывается страница https://www.reg.ru/whois/?check=&dname=nibbl.ru&_csrf=d8ea1f9002a91d59a2d31cad08f2efea
и тут меня интересует только строка с Дата окончания регистрации
и можно всю эту строку или дату поместить в переменную или сразу выгрузить в excel/

подскажите как это можно сделать.. уже всю голову сломал.(((

заранее большое спасибо!
 
Добрый день
подскажите ответ на такой вопрос, мне нужно через сервис whois сайта рег или других сервисов спарсить определенную строку со страницы.
Например
открывается страница https://www.reg.ru/whois/?check=&dname=nibbl.ru&_csrf=d8ea1f9002a91d59a2d31cad08f2efea
и тут меня интересует только строка с Дата окончания регистрации
и можно всю эту строку или дату поместить в переменную или сразу выгрузить в excel/

подскажите как это можно сделать.. уже всю голову сломал.(((

заранее большое спасибо!
На пример вот так
C#:
Развернуть Свернуть Копировать
HtmlElement hec2 = instance.ActiveTab.FindElementByXPath("//td[contains(@class, 'node_last')]", 8);
            project.Variables["DateLast"].Value = hec2.InnerHtml;

Не забудь в проекте создать переменную DateLast в нее ответ положится
 
  • Спасибо
Реакции: djaga
На пример вот так
C#:
Развернуть Свернуть Копировать
HtmlElement hec2 = instance.ActiveTab.FindElementByXPath("//td[contains(@class, 'node_last')]", 8);
            project.Variables["DateLast"].Value = hec2.InnerHtml;

Не забудь в проекте создать переменную DateLast в нее ответ положится

я прошу прощения , подскажите а это используется в каком действии?
я только изучаю зенку (
 
я прошу прощения , подскажите а это используется в каком действии?
я только изучаю зенку (
Свой код → C# код
1659121030592.png

Например, вот так:
ActiveTab.FindElementByXPath("//td[contains(@class, 'node_last')]", 8)
Нашел XPath интереснее)
//td[contains(text(),"Дата окончания регистрации")]/following-sibling::td
В него можно сразу запихнуть название строки, а он выдаст результат. И не нужно считать строчки на сайте.

Узнать дату окончания регистрации домена + очистка + конвертация в другой формат даты и времени:
Развернуть Свернуть Копировать
string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента
HtmlElement el = instance.ActiveTab.FindElementByXPath(xPath, 0); // всегда нулевой элемент
string res = el.InnerHtml; // получить только текст

res = Regex.Replace(res, "T|Z", " ").Trim(); // замена на пустоту T и Z, а потом очистка от лишних пробелов [можно убрать]
res = DateTime.Parse(res).ToString("dd.MM.yyyy HH:mm:ss"); // перевод в читаемый формат [можно убрать]

project.Variables["DateLast"].Value = res; // присвоение в переменную. Не забыть создать переменную с именем DateLast

Результат:
95189


Приложил шаблон ниже ↓.

@vitaz84, не забывайте нажимать "спасибо" помогающему)
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: Sho, Sergodjan и vitaz84
Свой код → C# код
Посмотреть вложение 95187


Нашел XPath интереснее)
//td[contains(text(),"Дата окончания регистрации")]/following-sibling::td
В него можно сразу запихнуть название строки, а он выдаст результат. И не нужно считать строчки на сайте.

Узнать дату окончания регистрации домена + очистка + приведение в другой формат даты:
Развернуть Свернуть Копировать
string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента
HtmlElement el = instance.ActiveTab.FindElementByXPath(xPath, 0); // всегда нулевой элемент
string res = el.InnerHtml; // получить только текст

res = Regex.Replace(res, "T|Z", " ").Trim(); // замена на пустоту T и Z, а потом очистка от лишних пробелов [можно убрать]
res = DateTime.Parse(res).ToString("dd.MM.yyyy HH:mm:ss"); // перевод в читаемый формат [можно убрать]

project.Variables["DateLast"].Value = res; // присвоение в переменную. Не забыть создать переменную с именем DateLast

Результат:
Посмотреть вложение 95189

Приложил шаблон ниже ↓.

@vitaz84, не забывайте нажимать "спасибо" помогающему)

А обещал через 5 минут шаблон приложить. Прошло 42 минуты со старта этого обещания)

Молодец/красавчик, что помогаешь, но лучше не бросаться такими понтами. Это тебя не красит :)
 
А обещал через 5 минут шаблон приложить. Прошло 42 минуты со старта этого обещания)

Молодец/красавчик, что помогаешь, но лучше не бросаться такими понтами. Это тебя не красит
Странный вы человек. Я в первой редакции сообщения, оперативно ответил на вопрос выше.
Дальше через 5-10мин я указал чуть более верный xPath и написал про пять мин.)
Пометку оставил чтобы задающий, понимал, что позже на этом месте появиться шаблон.

Хорошо.) Я понял в следующий раз если напишу, укажу знак ≈ [приблизительно].
Чтобы не трепать нервы особо чувствительным к времени последней правки.

А когда писал код, понял, что было бы полезно новичку увидеть, что можно сделать с датой. Так как он, скорее всего, делать это на кубиках.)
Суммарно, да, последняя правка 42 мин, но это не значит, что я просто зарезервировал место и ушел. Самое главное, что информация ценна и разжёвана!
 
Странный вы человек. Я в первой редакции сообщения, оперативно ответил на вопрос выше.
Дальше через 5-10мин я указал чуть более верный xPath и написал про пять мин.)
Пометку оставил чтобы задающий, понимал, что позже на этом месте появиться шаблон.

Хорошо.) Я понял в следующий раз если напишу, укажу знак ≈ [приблизительно].
Чтобы не трепать нервы особо чувствительным к времени последней правки.

А когда писал код, понял, что было бы полезно новичку увидеть, что можно сделать с датой. Так как он, скорее всего, делать это на кубиках.)
Суммарно, да, последняя правка 42 мин, но это не значит, что я просто зарезервировал место и ушел. Самое главное, что информация ценна и разжёвана!

Я случайно заглянул в тему и вижу оперативный ответ уже с xpath и ниже него подпись, что мол через 5 минут приложу шаблон. Возможно это было как раз в тот момент, когда "не потёр надпись" про 5 минут и так совпало. Но я это увидел как приложу именно шаблон (файл проект наверно) через 5 минут. Отдельно от xpath.

Шаблон (файл проекта) появился заметно позже и я это увидел именно как понт вроде того, что вообще изи "щас я за 5 минут накидаю шаб и прикреплю". Я о том, что добро делать это круто и респект тебе, но без временных рамок с обещаниями, которые сам случайно можешь нарушить, будет лучше. Совет от коллеги, не более, на основе случайного наблюдения. А ты меня уже в параноики записал :)
 
  • Спасибо
Реакции: djaga
Свой код → C# код
Посмотреть вложение 95187


Нашел XPath интереснее)
//td[contains(text(),"Дата окончания регистрации")]/following-sibling::td
В него можно сразу запихнуть название строки, а он выдаст результат. И не нужно считать строчки на сайте.

Узнать дату окончания регистрации домена + очистка + конвертация в другой формат даты и времени:
Развернуть Свернуть Копировать
string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента
HtmlElement el = instance.ActiveTab.FindElementByXPath(xPath, 0); // всегда нулевой элемент
string res = el.InnerHtml; // получить только текст

res = Regex.Replace(res, "T|Z", " ").Trim(); // замена на пустоту T и Z, а потом очистка от лишних пробелов [можно убрать]
res = DateTime.Parse(res).ToString("dd.MM.yyyy HH:mm:ss"); // перевод в читаемый формат [можно убрать]

project.Variables["DateLast"].Value = res; // присвоение в переменную. Не забыть создать переменную с именем DateLast

Результат:
Посмотреть вложение 95189

Приложил шаблон ниже ↓.

@vitaz84, не забывайте нажимать "спасибо" помогающему)


офигеть! спасибо большое!!!!
 
Свой код → C# код
Посмотреть вложение 95187


Нашел XPath интереснее)
//td[contains(text(),"Дата окончания регистрации")]/following-sibling::td
В него можно сразу запихнуть название строки, а он выдаст результат. И не нужно считать строчки на сайте.

Узнать дату окончания регистрации домена + очистка + конвертация в другой формат даты и времени:
Развернуть Свернуть Копировать
string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента
HtmlElement el = instance.ActiveTab.FindElementByXPath(xPath, 0); // всегда нулевой элемент
string res = el.InnerHtml; // получить только текст

res = Regex.Replace(res, "T|Z", " ").Trim(); // замена на пустоту T и Z, а потом очистка от лишних пробелов [можно убрать]
res = DateTime.Parse(res).ToString("dd.MM.yyyy HH:mm:ss"); // перевод в читаемый формат [можно убрать]

project.Variables["DateLast"].Value = res; // присвоение в переменную. Не забыть создать переменную с именем DateLast

Результат:
Посмотреть вложение 95189

Приложил шаблон ниже ↓.

@vitaz84, не забывайте нажимать "спасибо" помогающему)


Уважаемый Djaga

Можете подсказать по строчке:
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента

если у меня допустим уже другие строчки - Registrar Registration Expiration Date : для например домена https://www.reg.ru/whois/domenshop.biz

я не до конца понимаю как вы делали xPath

Буду признателен за помощь!
 
Уважаемый Djaga

Можете подсказать по строчке:
string xPath = $"//td[contains(text(),\"{whatLineToLookFor}\")]/following-sibling::td"; // путь к "брату" элемента

если у меня допустим уже другие строчки - Registrar Registration Expiration Date : для например домена https://www.reg.ru/whois/domenshop.biz

я не до конца понимаю как вы делали xPath

Буду признателен за помощь!
Тебе ведь уже все сделали, в таком случае надо в первой строчке кода

string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать

Заменить Дата окончания регистрации на Registrar Registration Expiration Date

string whatLineToLookFor = "Registrar Registration Expiration Date"; // какую строку нужно искать


А по xpath есть отличная тема https://zennolab.com/discussion/threads/obzor-zennoposter-xpath-na-primere-jandeks-marketa.37497/
 
  • Спасибо
Реакции: djaga
Тебе ведь уже все сделали, в таком случае надо в первой строчке кода

string whatLineToLookFor = "Дата окончания регистрации"; // какую строку нужно искать

Заменить Дата окончания регистрации на Registrar Registration Expiration Date

string whatLineToLookFor = "Registrar Registration Expiration Date"; // какую строку нужно искать


А по xpath есть отличная тема https://zennolab.com/discussion/threads/obzor-zennoposter-xpath-na-primere-jandeks-marketa.37497/


по первой строчке все понятно, что меняются слова, но с xpath понял, изучу материал по вашей ссылке. Спасибо большое!
 

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