Страницы: 1
RSS
Импорт данных из интернет в Excel
 
Друзья, приветствую. С Excel на ВЫ, а задачу решать надо.
Задача следующая.
Есть сайт http://www.deagel.com/Propulsion-Systems.htm из него необходимо импортировать данные: наименование двигателей + информацию по каждому из двигателей, которая содержится на странице при кликании на название конкретного двигателя, - и всю эту информацию необходимо представить в табличном виде.
Просветите, с какой стороны можно подойти к решению данной задачи

СПАСИБО, что дочитали!
 
Скорее всего вам сюда: Работа
 
Ради интереса спарсил. Код выкладывать не буду, но файлик (неполный) вот он.
А вообще да, тема не для бесплатного раздела.

Если интересно разобраться, можете идти двумя путями:
* через запросы (https://www.google.com/search?q=requests+vba&oq=requests+vba)
* через IE (https://www.google.com/search?q=vba+ie)

После получения всех ссылок (можно и с помощью множества расширений в хроме) берем тексты и парсим через библиотеки (https://www.google.com/search?q=msxml2.xmlhttp+vba&oq=msxml2.xmlhttp+vba)
С уважением,
Федор/Все_просто
 
Pavlean, можно вырубить топором в Power Query
Код
let
    Source = Table.FromColumns({Lines.FromBinary(Web.Contents("http://www.deagel.com/Propulsion-Systems.htm"))}),
    #"Filtered Rows" = Table.SelectRows(Source, each Text.StartsWith([Column1], "<b>")),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Filtered Rows", {{"Column1", Splitter.SplitTextByDelimiter("</a>", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Column1"),
    #"Duplicated Column" = Table.DuplicateColumn(#"Split Column by Delimiter", "Column1", "Копия Column1"),
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Duplicated Column", "Column1", Splitter.SplitTextByDelimiter(">", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"Column1.1", type text}, {"Column1.2", type text}}),
    #"Extracted Text After Delimiter" = Table.TransformColumns(#"Changed Type", {{"Column1.1", each Text.AfterDelimiter(_, "<a href="), type text}}),
    #"Added Custom" = Table.AddColumn(#"Extracted Text After Delimiter", "Пользовательская", each let
    Source = Table.FromColumns({Lines.FromBinary(Web.Contents("http://www.deagel.com/"&[Column1.1]))}),
    #"Added Conditional Column" = Table.AddColumn(Source, "Пользовательская", each if Text.StartsWith([Column1], "<i>") then [Column1] else null),
    #"Filtered Rows" = Table.SelectRows(#"Added Conditional Column", each ([Пользовательская] <> null)),
    #"Duplicated Column" = Table.DuplicateColumn(#"Filtered Rows", "Пользовательская", "Копия Пользовательская"),
    #"Extracted Text Between Delimiters" = Table.TransformColumns(#"Duplicated Column", {{"Пользовательская", each Text.BetweenDelimiters(_, "<i>", "</i>"), type text}}),
    #"Extracted Text Between Delimiters1" = Table.TransformColumns(#"Extracted Text Between Delimiters", {{"Копия Пользовательская", each Text.BetweenDelimiters(_, "</i>", "<br />"), type text}}),
    #"Extracted Text Between Delimiters2" = Table.TransformColumns(#"Extracted Text Between Delimiters1", {{"Копия Пользовательская", each Text.BetweenDelimiters(_, """>", "</a>", {0, RelativePosition.FromEnd}, 0), type text}}),
    #"Kept Last Rows" = Table.LastN(#"Extracted Text Between Delimiters2", 7)
in
    #"Kept Last Rows"),
    #"Expanded {0}" = Table.ExpandTableColumn(#"Added Custom", "Пользовательская", {"Копия Пользовательская"}, {"Копия Пользовательская"})
in
    #"Expanded {0}"
 
Все_просто, спасибо, что постарались объяснить)
И я конечно польщен, что вы объяснили, каким образом мне действовать, как что-либо в этом понимающему, но для меня это все темный лес. Отсутствие у меня знаний не позволяет вести понятный диалог - за ссылки спасибо! Изучу!
Можете вкратце для общего понимания объяснить, что это за файлик, для чего он нужен и что, собственно говоря, с ним делать дальше?
Правильно я понимаю, что на выходе нужно получить файлик, при импорте которого в Excel, должны увидеть нужную таблицу?
Изменено: Pavlean - 29.12.2019 10:38:24
 
artyrH, спасибо!
Можете пояснить, что это такое, как это получить и как с этим дальше работать?
 
Цитата
Pavlean написал:
что это такое, как это получить и как с этим дальше работать?
это запрос Power Query, надо скопировать код и вставить в расширенный редактор. из нагугленного на этом сайте показано как добраться до расширенного редактора.
 
Pavlean, Какую именно информацию вам надо?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, приветствую!
В идеале требуется информация для заполнения таблицы, шаблон которой во вложении.
Львиная доля информации, необходимой для заполнения, имеется на ранее указанном сайте http://www.deagel.com/Propulsion-Systems.htm
Проблема с тем, как эту информацию собрать в кучу и представить в табличном виде.
 
Добрый день. Что-то слишком много данных Вы нарисовали. На примере этого где они?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
artyrH, подскажите, каким образом добыли/ получили данный код?  
До расширенного редактора добрался, код скопипастил, полученный результат сего действия во вложении.
Частичную информацию по двигателям увидел.
Как получить более полную информацию и можно ли ее как-то экспортировать?
Изменено: Pavlean - 30.12.2019 13:40:55
 
.
 
Alemox, для номеров столбцов, указанных в excel файле, стрелками показал, откуда должна браться информация, хотя выбранная вами модель двигателя не самая удачная с точки зрения наполненности информацией.
Остальная информация относится в основном к платформам, т.е. это самолеты/веротолеты/пароходы, в которых применяется двигатель. Эту информацию можно увидеть, если кликнуть на соответствующую платформу.
Изменено: Pavlean - 30.12.2019 19:52:41
 
artyrH, каким образом формируется код? Откуда вы его взяли?
 
Цитата
Pavlean написал:
каким образом формируется код?
в моем случае большей частью генерируется программой
Цитата
Pavlean написал:
Откуда вы его взяли?
нанажимал кнопками

не думаю что вы самостоятельно соберете нужный запрос. все таки лучше обратиться на форум работа
 
Цитата
artyrH написал:
нанажимал кнопками
 
doober, а как вы хотели.. такие вещи уже кнопками можно делать
 
Цитата
artyrH написал:
в моем случае большей частью генерируется программой
То есть это некая специализированная для этих целей программа?
Цитата
artyrH написал:
нанажимал кнопками
Эти кнопки тоже из Вашей программы?
Цитата
artyrH написал:
не думаю что вы самостоятельно соберете нужный запрос. все таки лучше обратиться на форум  работа
artyrH, помимо того, что нужно собрать информацию, хочется разобраться, как это все работает: если не научиться, то хотя бы понять
 
Цитата
doober написал:


doober, Вы знаете какие-то альтернативные варианты? Может подЕлитесь?
 
Pavlean, Power Query и есть та самая программа с кнопками. конечно можно и руками написать этот запрос
Цитата
Pavlean написал:
хотя бы понять
в запросе суть следующая:
ссылкой получить Html код
затем по определенным тегам выбрать следующие ссылки
по этим ссылкам получить Html код
опять же по определенным тегам получить данные
и все  
 
Я бы снял данные вариантом, предложенным  Все_просто
Страницы: 1
Наверх