Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Парсинг (гиперссылка на часть текста в ячейке)

Автор Максим Пожарский, 02.05.2024, 13:04:06

« назад - далее »

Максим Пожарский

Добрый день! Подскажите, пожалуйста, как правильно сделать парсинг, чтобы ссылка, которая есть в тексте была именно ссылкой, а не текстом?
На скриншоте отметил, что именно нужно. Пробовал тянуть и через формулу внешних ссылок и внутренних (@href), но всё равно не тянет.
Таблица https://docs.google.com/spreadsheets/d/1HLF22eVwFqFXQPrKoTDAL4MXrAXZvdZE44WjItxAIiQ/edit#gid=0


Дмитрий Щербаков(The_Prist)

Выделите нужную часть текста внутри ячейки(именно в ячейке, а не в строке формул) и нажмите сочетание клавши Ctrl+K(для MAC - Command+K).

P.S. Это не парсинг. Парсинг - это разбор некоего текста, а не составление :) Название темы подкорректировал.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Не совсем понел как это работает?) При данном сочетании клавиш у меня открывается путь на другие таблицы...

Я хотел чтобы гиперссылка (Читать полностью) на оставшиеся текст также подтягивалась :-\

Максим Пожарский

Подскажите, пожалуйста, а данную ссылку, которая в конце текста (Читать полностью...) как то можно в отдельную ячейку допустим вывести?
Никак не получается вот эту ссылку с помощью importxml подтянуть :-\

Дмитрий Щербаков(The_Prist)

Да, смекалки у Вас нет :)
Копируем текст ссылки, который хотим назначить части текста. Выделяем нужную часть текста внутри ячейки -Ctrl+K. В появившемся окне вверху есть поле для ввода текста(там где написано "Найдите или вставьте сс") - вставляем туда скопированную ссылку и нажимаем на кнопку правее этого поля. Ссылка готова.
Для примера сделал это в Вашем файле в ячейке К3.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Да дело не в смекалке) просто руками ссылку для каждой ячейки назначать нет смысла, я думал есть варианты, чтобы автоматически через функцию ссылка подтягивалась... Ну и плюс формула сразу ломается, к сожалению(

Дмитрий Щербаков(The_Prist)

Так Вы хотели, чтобы IMPORTXML тянула с сайта текст по сути со всем форматированием и ссылками? Думаю, это невозможно на данный момент.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Хотел, чтобы именно ссылку в тексте тянул, либо ссылку вывести в отдельную ячейку, напротив, я по гуглил вроде есть такие возможности у данной функции..

Я просто не совсем понимаю, как её так вывести отдельно например...

Вот то, что я отметил на скрине я делаю таким образом: сначала преобразую саму ссылку //a[@class='/news/airlines/9656-wz-red-vings-ao-red-vings-otkrytie-prodazhi-na-novye-regulyarnye-rejsy-iz-ulyanovska-v-minsk.html']/@href

Потом пробую сделать гиперссылку с помощью CONCATENATE: =CONCATENATE("https://aviakassir.info/";G3)
Где G3 это ячейка с ссылкой - //a[@class='/news/airlines/9656-wz-red-vings-ao-red-vings-otkrytie-prodazhi-na-novye-regulyarnye-rejsy-iz-ulyanovska-v-minsk.html']/@href

Но всё равно не тянет, я этот вариант нашёл на просторах интернета, как пример, для подтягивания ссылок через IMPORTXML
Только у меня почему то не работает, возможно что то на сайте отличается или я что то не так делаю(

Максим Пожарский


Дмитрий Щербаков(The_Prist)

Думаю, что ссылки Вы сможете вот так вытащить:
=IMPORTXML("https://aviakassir.info/";"//div[@class='jn-intro']/p/a[starts-with(@href,'/news/')]/@href")
но вот сделать их гиперссылками уже не получится в одной формуле - надо будет это делать в доп.столбце.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Дмитрий спасибо большое за помощь! :)
Это именно то, что и было нужно. Ссылки подтянулись, далее я их через функцию CONCATENATE сделал гиперссылками, но есть одно НО, почему то не все ссылки тянет, которые на странице, к примеру, ссылку, которая в первой статье не тянет...
Я на скриншоте отметил, как пример, не подскажите почему они не подтягиваются?

Дмитрий Щербаков(The_Prist)

#11
это из другого блока ссылка - там начало не на /news/, а на /manuals/. Если не надо отбирать только /news/, то уберите блок [starts-with(@href,'/news/')] из функции. Тогда будут тянуться все ссылки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Максим Пожарский

Попробовал сделать, как вы написали убрать [starts-with(@href,'/news/')] из функции, к сожалению выдаёт ошибку((

Пробовал добавить два Xpath в формулу, но тоже не работает, чтобы выводил ссылки и /news/ и /manuals/.

Максим Пожарский

Всё получилось! :)

Спасибо вам огромное Дмитрий за помощь!

Максим Пожарский

Дмитрий здравствуйте! Я не стал создавать новую тему, чтобы не плодить похожие. Появился вопрос касаемо парсинга..
Я парсил данные с сайта https://www.avionio.com/ru/airport/muc/departures
Всё прекрасно работало, но потом почему то некоторые ячейки с вложенной IMPORTXML формулой перестали прогружать инфу, но не все правда ячейки, а только некоторые.
Таблица: https://docs.google.com/spreadsheets/d/1HmvYn2u4WPHkN4G9nd8_tNWEWWYy9evQqFyRdVy9KX8/edit#gid=1642939295
Формула вроде везде простая, но вот ячейки с временем и статусом перестали транслировать инфу с сайта, хотя до этого всё работало. Можете, пожалуйста, подсказать с чем это может быть связано?
Заранее благодарю!

Яндекс.Метрика Рейтинг@Mail.ru