В этом приеме описывается три способа получить данные, содержащиеся в веб-странице: вставить статическую копию информации; создать обновляемую ссылку на сайт; открыть страницу непосредственно в Excel.
Вставка статической информации
Один из способов получить данные из веб-страницы на лист — просто выделить текст в браузере, нажать Ctrl+C, чтобы скопировать его в буфер обмена, а затем вставить текст в таблицу. Результат может быть разным, в зависимости от того, какой браузер вы используете. Если это Internet Explorer, то вставленные данные будут, вероятно, очень похожи на оригинал — в комплекте с настройками форматирования, гиперссылками и графикой.
Если вы используете браузер, отличный от Internet Explorer, то, выбрав Главная ► Буфер обмена ► Вставить, можно вставить все, что вы скопировали с веб-страницы, в одну ячейку, а это, скорее всего, не то, чего вы хотите. Решение состоит в том, чтобы выбрать команду Главная ► Буфер обмена ► Вставить ► Специальная вставка, а затем пробовать различные варианты вставки.
Вставка обновляемой информации
Если вы хотите регулярно получать доступ к обновленным данным из веб-страницы, создайте веб-запрос. На рис. 176.1 показан сайт, который содержит курсы валют в таблице с тремя столбцами. Выполнив следующие шаги, можно создать веб-запрос, позволяющий извлекать эту информацию, а затем обновлять ее в любое время одним щелчком кнопкой мыши.
Рис. 176.1. Этот сайт содержит информацию, которая часто меняется
- Выберите Данные ► Получение внешних данных ► Из Интернета для открытия диалогового окна Создание веб-запроса.
- В поле Адрес введите URL сайта и нажмите кнопку Пуск. Для этого примера URL-адрес веб-страницы, показанной на рис. 176.1, будет таким: http://cbr.ru. Обратите внимание, что диалоговое окно Создание веб-запроса содержит мини-браузер (Internet Explorer). Вы можете переходить по ссылкам и посещать сайты, пока не найдете данные, которые вас заинтересуют. Когда веб-страница отображается в окне Создание веб-запроса, вы видите одну или несколько желтых стрелок, которые соответствуют различным элементам на веб-странице.
- Щелкните на желтой стрелке, и она превратится в зеленый флажок, который указывает, что данные этого элемента будут импортированы. Вы можете импортировать столько элементов, сколько нам нужно. Для этого
примера я щелкну на стрелке рядом с таблицей курсов. - Нажмите кнопку Импорт для открытия диалогового окна Импорт данных.
- В окне Импорт данных укажите место для импортированных данных. Это может быть ячейка в существующем или новом листе.
- Нажмите кнопку ОК, и Excel импортирует данные (рис. 176.2).
Рис. 176.2. Данные, импортированные из веб-страницы
По умолчанию импортированные данные — это веб-запрос. Чтобы обновить информацию, щелкните правой кнопкой мыши на любой ячейке импортированного диапазона и выберите в контекстном меню команду Обновить. Если вы не хотите создавать обновляемый запрос, укажите это в шаге 5 предыдущего списка действии. В окне Импорт данных нажмите кнопку Свойства и снимите флажок сохранить определение запроса.
Открытие веб-страницы напрямую
Еще один способ получить данные веб-страницы на лист — открыть URL-адрес напрямую, с помощью команды Файл ► Открыть. Просто введите полный URL-адрес в поле Имя файла и нажмите кнопку Открыть. Результат будет отличаться в зависимости от того, какая разметка у веб-страницы, но в большинстве случаев он вас удовлетворит. Иногда таким способом извлекается довольно много посторонней информации.
Парсинг нетабличных данных с сайтов
Проблема с нетабличными данными
С загрузкой в Excel табличных данных из интернета проблем нет. Надстройка Power Query в Excel легко позволяет реализовать эту задачу буквально за секунды. Достаточно выбрать на вкладке Данные команду Из интернета (Data — From internet), вставить адрес нужной веб-страницы (например, ключевых показателей ЦБ) и нажать ОК:
Power Query автоматически распознает все имеющиеся на веб-странице таблицы и выведет их список в окне Навигатора:
Дальше останется выбрать нужную таблицу методом тыка и загрузить её в Power Query для дальнейшей обработки (кнопка Преобразовать данные) или сразу на лист Excel (кнопка Загрузить).
Если с нужного вам сайта данные грузятся по вышеописанному сценарию — считайте, что вам повезло.
К сожалению, сплошь и рядом встречаются сайты, где при попытке такой загрузки Power Query «не видит» таблиц с нужными данными, т.е. в окне Навигатора попросту нет этих Table 0,1,2… или же среди них нет таблицы с нужной нам информацией. Причин для этого может быть несколько, но чаще всего это происходит потому, что веб-дизайнер при создании таблицы использовал в HTML-коде страницы не стандартную конструкцию с тегом <TABLE>, а её аналог — вложенные друг в друга теги-контейнеры <DIV>. Это весьма распространённая техника при вёрстке веб-сайтов, но, к сожалению, Power Query пока не умеет распознавать такую разметку и загружать такие данные в Excel.
Тем не менее, есть способ обойти это ограничение
В качестве тренировки, давайте попробуем загрузить цены и описания товаров с маркетплейса Wildberries — например, книг из раздела Детективы:
Загружаем HTML-код вместо веб-страницы
Сначала используем всё тот же подход — выбираем команду Из интернета на вкладке Данные (Data — From internet) и вводим адрес нужной нам страницы:
https://www.wildberries.ru/catalog/knigi/hudozhestvennaya-literatura/detektivy
После нажатия на ОК появится окно Навигатора, где мы уже не увидим никаких полезных таблиц, кроме непонятной Document:
Дальше начинается самое интересное. Жмём на кнопку Преобразовать данные (Transform Data), чтобы всё-таки загрузить содержимое таблицы Document в редактор запросов Power Query. В открывшемся окне удаляем шаг Навигация (Navigation) красным крестом:
… и затем щёлкаем по значку шестерёнки справа от шага Источник (Source), чтобы открыть его параметры:
В выпадающием списке Открыть файл как (Open file as) вместо выбранной там по-умолчанию HTML-страницы выбираем Текстовый файл (Text file). Это заставит Power Query интерпретировать загружаемые данные не как веб-страницу, а как простой текст, т.е. Power Query не будет пытаться распознавать HTML-теги и их атрибуты, ссылки, картинки, таблицы, а просто обработает исходный код страницы как текст.
После нажатия на ОК мы этот HTML-код как раз и увидим (он может быть весьма объемным — не пугайтесь):
Ищем за что зацепиться
Теперь нужно понять на какие теги, атрибуты или метки в коде мы можем ориентироваться, чтобы извлечь из этой кучи текста нужные нам данные о товарах. Само-собой, тут всё зависит от конкретного сайта и веб-программиста, который его писал и вам придётся уже импровизировать.
В случае с Wildberries, промотав этот код вниз до товаров, можно легко нащупать простую логику:
- Строчки с ценами всегда содержат метку lower-price
- Строчки с названием бренда — всегда с меткой brand-name c-text-sm
- Название товара можно найти по метке goods-name c-text-sm
Иногда процесс поиска можно существенно упростить, если воспользоваться инструментами отладки кода, которые сейчас есть в любом современном браузере. Щёлкнув правой кнопкой мыши по любому элементу веб-страницы (например, цене или описанию товара) можно выбрать из контекстного меню команду Инспектировать (Inspect) и затем просматривать код в удобном окошке непосредственно рядом с содержимым сайта:
Фильтруем нужные данные
Теперь совершенно стандартным образом давайте отфильтруем в коде страницы нужные нам строки по обнаруженным меткам. Для этого выбираем в окне Power Query в фильтре [1] опцию Текстовые фильтры — Содержит (Text filters — Contains), переключаемся в режим Подробнее (Advanced) [2] и вводим наши критерии:
Добавление условий выполняется кнопкой со смешным названием Добавить предложение [3]. И не забудьте для всех условий выставить логическую связку Или (OR) вместо И (And) в выпадающих списках слева [4] — иначе фильтрация просто не сработает.
После нажатия на ОК на экране останутся только строки с нужной нам информацией:
Чистим мусор
Останется почистить всё это от мусора любым подходящим и удобным лично вам способом (их много). Например, так:
- Удалить заменой на пустоту начальный тег: <span class=»price»> через команду Главная — Замена значений (Home — Replace values).
- Разделить получившийся столбец по первому разделителю «>» слева командой Главная — Разделить столбец — По разделителю (Home — Split column — By delimiter) и затем ещё раз разделить получившийся столбец по первому вхождению разделителя «<» слева, чтобы отделить полезные данные от тегов:
- Удалить лишние столбцы, а в оставшемся заменить стандартную HTML-конструкцию " на нормальные кавычки.
В итоге получим наши данные в уже гораздо более презентабельном виде:
Разбираем блоки по столбцам
Если присмотреться, то информация о каждом отдельном товаре в получившемся списке сгруппирована в блоки по три ячейки. Само-собой, нам было бы гораздо удобнее работать с этой таблицей, если бы эти блоки превратились в отдельные столбцы: цена, бренд (издательство) и наименование.
Выполнить такое преобразование можно очень легко — с помощью, буквально, одной строчки кода на встроенном в Power Query языке М. Для этого щёлкаем по кнопке fx в строке формул (если у вас её не видно, то включите её на вкладке Просмотр (View)) и вводим следующую конструкцию:
= Table.FromRows(List.Split(#»Замененное значение1″[Column1.2.1],3))
Здесь функция List.Split разбивает столбец с именем Column1.2.1 из нашей таблицы с предыдущего шага #»Замененное значение1″ на кусочки по 3 ячейки, а потом функция Table.FromRows конвертирует получившиеся вложенные списки обратно в таблицу — уже из трёх столбцов:
Ну, а дальше уже дело техники — настроить числовые форматы столбцов, переименовать их и разместить в нужном порядке. И выгрузить получившуюся красоту обратно на лист Excel командой Главная — Закрыть и загрузить (Home — Close & Load…)
Вот и все хитрости
Ссылки по теме
- Импорт курса биткойна с сайта через Power Query
- Парсинг текста регулярными выражениями (RegExp) в Power Query
- Параметризация путей к данным в Power Query
Download Article
Download Article
- Windows
- Mac
|
If you need to import data from the web into your Microsoft Excel spreadsheet, you can use the import feature of Power Query on both Windows and macOS. While the steps are straightforward in Windows, Mac users technically don’t have the option to import web data. Fortunately, we’ve found a simple workaround for Mac using Microsoft Word! This wikiHow will show you import data from a remote URL into Excel in Windows and macOS.
-
1
Click an empty cell in the spreadsheet. Choose the cell where you’d like the pasted data to begin.
-
2
Click the Data tab. This tab is located between Formulas and Review at the top of the app window.
Advertisement
-
3
Click From Web on the Data ribbon. You will see this in the upper-left corner of Excel on the «Get & Transform Data» panel.[1]
This option is in the upper-left corner of your Data ribbon. This opens the «From Web» window.- If you don’t see this option, click the Get Data drop-down menu at the top-left, select From Other Sources, and then select From Web.
-
4
Enter the website URL and click OK. The address you enter or paste into the typing area should be the URL that contains the data you want to import.
-
5
Click Connect to access the site anonymously. If the data is on a public website, this will display the tables in Table View.[2]
If the site requires a login:- If you usually sign in to this page by entering a username and password into the site’s own login/sign-in fields, select Basic, enter your login details, and click Connect.
- If you need to log in through a work or school account, select Windows to use a Windows network login, or select Organizational account and then Sign In to log in through your organization’s server.
- If you have an API key, select Web API, enter the key, and click Connect.
-
6
Select a table. The list of tables appears in the left panel of the Navigator window. When you select a table, the data will appear in the panel on the right.
- If you’re not sure which table you need, click the Web View tab at the top of the right panel to display the website, and then click the table to select it.
- To import more than one table, check the box next to «Select multiple items» near the top-left.
-
7
Click the Load button. This will import the selected table data into your Excel spreadsheet.
Advertisement
-
1
Open Microsoft Word to a blank document. Because Excel for macOS, even the one that comes with Office 365, doesn’t have an option to import data from the web, you’ll need to do a little workaround that involves creating a query in Microsoft Word first.[3]
-
2
Type or paste the URL you want to import from. It’s important that the URL be in plain text. If you copied the URL from somewhere else, click the small icon that appears after pasting and select Keep Text Only.
-
3
Click the File menu and choose Save as. Now you’ll need to save the file in the TXT format in a particular location.
-
4
Select the Queries folder. Before you save the file, you’ll need to navigate to Applications > Microsoft Office 365 > Office > Queries, as that’s where you’ll need to save the file.
- If you’re using a different version of Office, you’ll see your version instead.
-
5
Save the file as a plain text file. Enter a name for your file and choose the .txt file extension. You’ll see a warning message in a window called «File Conversion.»
-
6
Select your preferences and click OK. These two options are very important:
- Under «Text encoding,» select MS-DOS.
- Under «Options,» check the box next to «Insert line breaks.» The other options should be blank.
-
7
Open Finder and navigate to the Queries folder. Again, it’s at Applications > Microsoft Office 365 > Office > Queries.
-
8
Change the file extension from .txt to .iqy.
- Right-click the file you created and select Get Info.
- In the file name, replace .txt with .iqy.
- When prompted, confirm that you want to change the file extension.
-
9
Open your spreadsheet in Excel. Now that you have a query to work with, you can import it into Excel.
-
10
Click the Data menu. It’s in the menu bar at the top of the screen.
-
11
Select the Get external data menu. Additional options will expand.
-
12
Click Run web query. This will open a Finder window to the Queries folder, which is where you saved your query.
-
13
Select your IQY file and click Get Data. This will import the data into your Excel file.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Thanks for submitting a tip for review!
References
About This Article
Article SummaryX
You can easily import a data table from the web into your Excel file using Excel’s «From Web» import tool. To do this, open your Excel file, and then click the cell where you’d like the imported data to appear. On the Data tab, click the From Web button on the left side of the toolbar to open the «From Web» window. Type or enter the URL that contains your data and click OK. If the data is on a public website, click Connect to open it. If it requires a login, choose the option in the left panel that describes how you typically sign in, enter your login details, and click Connect. If you know the name of the table you want to import, click it in the left panel. If you’d rather select it from the website, click the Web View tab above the right panel to load the site, and then click the desired table. You can import more than one table at once by checking the «Select multiple items» box and clicking additional tables. When you’re finished, click Load to import the selected data to your spreadsheet.
Did this summary help you?
Thanks to all authors for creating a page that has been read 72,295 times.
Is this article up to date?
Перейти к содержимому
Если вы обладаете достаточным количеством времени и ресурсов перенести данные с сайта в таблицу «Excel» можно в «ручном режиме». Тот случай, когда таблица на сайте выделяется курсором мыши, копируется и вставляется в файл «Эксель». Естественно, этот способ долог и неудобен.
Я хочу рассказать Вам о другом, автоматизированном способе переноса данных с сайта в программу «Excel». Этот способ позволяет настроить процесс импорта обновленных актуальных данных с сайта прямо в таблицу одним нажатием кнопки мыши.
Для автоматизации импорта данных в «Эксель» из интернета потребуется «Excel» версии 2013 и выше, а так же надстройка Power Query.
Последовательность настройки скачивания данных:
Порядок действий для импорта таблицы из интернет-сайта в таблицу Excel.
Программа Excel соединится с сайтом, обнаружит все опубликованные на странице сайта таблицы и предложит Вам выбрать, какую таблицу загрузить с сайта в Ваш документ Excel.
- Шаг 5. Выбрать нужную таблицу из предложенного списка и нажать «Правка» или «Загрузить»
Если нажать «Загрузить», таблица будет импортирована целиком. В режиме правки можно редактировать вид загружаемой таблицы, выбирать нужные столбцы и т.д.
Import data from the web
Get started with Power Query and take your data transformation skills to the next level. First, let’s import some data.
Note Although the videos in this training are based on Excel for Microsoft 365, we’ve added instructions as video labels if you are using Excel 2016.
-
Download the template tutorial that accompanies this training, from here, and then open it.
-
On the Import Data from Web worksheet, copy the URL, which is a Wikipedia page for the FIFA World Cup standings.
-
Select Data > Get & Transform > From Web.
-
Press CTRL+V to paste the URL into the text box, and then select OK.
-
In the Navigator pane, under Display Options, select the Results table.
Power Query will preview it for you in the Table View pane on the right.
-
Select Load. Power Query transforms the data and loads it as an Excel table.
-
Double-click the sheet tab name and then rename it «World Cup Results».
Tip
To get updates to this World Cup data, select the table, and then select Query Refresh.
Need more help?
На чтение 1 мин. Просмотров 19.6k. Опубликовано 29.05.2007
Хотите получать постоянно обновляющуюся информацию, например котировки валют, результаты финансовых анализов или прайс-листы, не заходя на веб-сайты, а открыв один-единственный лист Excel?
Так как большинство современных веб-страниц оформляются с помощью CSS (каскадных таблиц стилей), импортировать нужные данные в таблицу Excel очень просто.
1. Создайте новую книгу Excel.
2. Запустите веб-браузер, используемый на компьютере по умолчанию, и введите адрес страницы, с которой будет выполняться импорт данных. После того, как вы перейдёте на соответствующую страницу, сверните браузер и вернитесь в Excel.
3. В меню »Данные» выберите »Импорт внешних данных», а затем команду »Создать веб-запрос».
4. Снова перейдите в веб-браузер, скопируйте содержимое строки адреса, а затем, вернувшись в Excel, вставьте скопированные данные в строку »Адрес»(окно »Создание веб-запроса»). Щёлкните на кнопке »Пуск».
5. После загрузки веб-страницы, элементы, которые можно импортировать, будут отмечены значком со стрелочкой.
6. Выберите нужные данные и щёлкните, сначала на значке рядом с ними, а затем — по кнопке »Импорт».
Если вы всё сделали правильно, спустя некоторое время, в ячейках таблицы появятся выбранные данные.
Чтобы информация автоматически обновлялась через Интернет, в контекстном меню выберите »Свойства диапазона данных» и задайте период обновления.