Страницы: 1
RSS
Выгрузка гиперссылок со страницы
 
Всем привет!

Есть условная страница в интернете, в ней таблица, несколько столбцов, несколько строк. Первый столбец содержит (в каждой строчке) гиперссылки на другие страницы в интернете, каким образом можно сделать выгрузку (автообновляемую) этих гиперссылок. Пробовал все это делать через PQ, но он выгружает только данные (в виде текста), есть какие-то варианты?
 
Доброе время суток
Цитата
dodge написал:
есть какие-то варианты?
Вариант. Откройте, разрешите макросы и обновите ;)  
P. S. Тестировалось в Excel 365.
Изменено: Андрей VG - 12.01.2020 15:49:21
 
Работает спасибо, но важный нюанс.

Гиперссылки на странице, с которой происходит выгрузка представлены не в виде адреса хтпп\\итд, они представленный просто в виде названия позиций, при нажатии на которую попадешь на страницу позиции. Адрес как раз нужно как-то вытащить. Это можно как-то сделать?

Вот нужно, нечто подобное
https://docs.microsoft.com/ru-ru/power-bi/power-bi-hyperlinks-in-tables
Но в рамках PQ или VBA, но не BI.
 
Цитата
dodge написал:
они представленный просто в виде названия позиций
Для этого нужно разбирать Html и местами не использовать мышиный хардкод :)  
Пример для заглавной страницы форума
Код
let
    source = Web.Contents("https://www.planetaexcel.ru/forum/"),
    toText = Text.FromBinary(source),
    xhtml = Text.Replace("<table>" & Text.BetweenDelimiters(toText, "<table cellspacing=""0"" class=""forum-table forum-forum-list"">", "</table>") & "</table>", "<br>", ""),
    xhtml2 = Text.Replace(xhtml, "&nbsp;", ""),
    toXml = Xml.Document(xhtml2),
    tbody = toXml{0}[Value]{1}[Value][[Value]],
    #"Expanded {0}" = Table.ExpandTableColumn(tbody, "Value", {"Value"}, {"Value.1"}),
    #"Expanded {0}1" = Table.ExpandTableColumn(#"Expanded {0}", "Value.1", {"Value"}, {"Value"}),
    tableOnly = Table.SelectRows(#"Expanded {0}1", each [Value] is table),
    #"Expanded {0}2" = Table.ExpandTableColumn(tableOnly, "Value", {"Name", "Value", "Attributes"}),
    #"Expanded {0}3" = Table.ExpandTableColumn(#"Expanded {0}2", "Attributes", {"Value"}, {"Value.1"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded {0}3", each ([Value.1] = "forum-item-name")),
    #"Expanded {0}4" = Table.ExpandTableColumn(#"Filtered Rows", "Value", {"Value", "Attributes"}, {"Value.2", "Attributes"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded {0}4",{"Name", "Attributes", "Value.1"}),
    #"Expanded {0}5" = Table.ExpandTableColumn(#"Removed Columns", "Value.2", {"Value", "Attributes"}, {"Value", "Attributes"}),
    nameAndLinks = Table.ExpandTableColumn(#"Expanded {0}5", "Attributes", {"Value"}, {"ahref"}),
    addFormula = Table.AddColumn(nameAndLinks, "href", each
        "=HYPERLINK(""https://www.planetaexcel.ru" & [ahref] & """,""" & [Value] & """)"
    )
in
    addFormula[[href]]
 
Спасибо! Это было сложно, для меня, но разобрался кое-как) Можно еще 1 вопрос, чтобы тему не создавать новую.
Есть большая таблица (А) столбец 1 сейчас в нем как-раз вот эти спарсенные ссылки. По каждой ссылке - парсится еще 1 таблица (Б) в ней - 2 столбца (1 столбец - наименование, 2 - значение). Нужно сделать так, чтобы PQ пробегал по всем ссылкам из таблицы А и добавлял из КАЖДОЙ ССЫЛКИ (из спарсенной таблицы Б) в таблицу А - столбец и нужное значение . Причем, в чем сложность, таблицы Б спарсенные, могут быть разными, т.е. как я себе вижу это: PQ должен обращаться к ссылке из столбца таблицы А, парсить таблицу Б, смотрит в ней наименование 1 строки, смотрит есть ли столбец такой в таблице А, если нет - добавляет такой столбец и вносит значение, если в таблице А есть такой столбец - просто вносится значение. И так далее. Это вообще возможно в PQ сделать? Я пока не очень силен в программирование, я себе это вижу через циклы.

http://prntscr.com/qnmzof
ссылка на скриншот для наглядности
Изменено: dodge - 14.01.2020 19:52:37
 
Парни, мб все же кто-то подскажет как сделать проще эту задачу? В целом как ее решить я нашел способ, но такой способ, учитывая около 2000 строк, подгрузит комп наверное на несколько часов.

Сейчас главный простой вопрос - есть ли возможность в PQ создания сразу большого количества столбцов? Или только по одному через Add.Table
https://prnt.sc/qpadvc
Вот список спарсенный, в каждой строке (в столбце Обработка) есть таблица (Table), в каждой из этих таблиц 2 колонки (Параметр и значение).
Отдельно вывел для каждой строки соответствующий список Параметров и Значений (из Table). Мне нужно вытащить ВСЕ УНИКАЛЬНЫЕ значения из всех возможных вариантов значений Параметров. И создать столбцы в таблице с этими Параметрами. И соответственно потом заполнить эти столбцы значениями нужными (из столбца значения). Готового решения не нужно, просто дайте совет, направление. Сейчас вижу это так: написать рекурсивную функцию, которая будет пробегать по всем строками и плюсовать с каждой строкой в какой-то список, уникальные значения. Ну и тд.
Изменено: dodge - 18.01.2020 02:20:03
 
Цитата
dodge написал:
соответствующий список Параметров и Значений (из Table). Мне нужно вытащить ВСЕ УНИКАЛЬНЫЕ значения из всех возможных вариантов значений Параметров. И создать столбцы в таблице с этими Параметрами.
это уже не Выгрузка гиперссылок со страницы.
откройте новую тему и покажите что есть и что надо получить.
покажите в ФАЙЛЕ, в ФАЙЛЕ, в ФАЙЛЕ
Страницы: 1
Наверх