Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Парсинг данных с сайта - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Парсинг данных с сайта
AndyH Дата: Вторник, 15.08.2017, 10:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Проще говоря, нужно парсить цены с Алиэкспресса в Google Sheets
есть начальная формула =IMPORTXML(C2;"//span")
и есть xPath
<span id="j-total-price-value" class="total-price-show" style="user-select: text;">176 515,20 руб.</span>
С2 - ячейка с сайтом.
В итоге выходит около 30 строчек текста с сайтом, в том числе и цена.
Как прописать так что бы выходила только цена?
 
Ответить
СообщениеПроще говоря, нужно парсить цены с Алиэкспресса в Google Sheets
есть начальная формула =IMPORTXML(C2;"//span")
и есть xPath
<span id="j-total-price-value" class="total-price-show" style="user-select: text;">176 515,20 руб.</span>
С2 - ячейка с сайтом.
В итоге выходит около 30 строчек текста с сайтом, в том числе и цена.
Как прописать так что бы выходила только цена?

Автор - AndyH
Дата добавления - 15.08.2017 в 10:29
doober Дата: Вторник, 15.08.2017, 11:51 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 983
Репутация: 340 ±
Замечаний: 0% ±

Excel 2010
Цену товара так можно получить =IMPORTXML(C2;"//span [@id='j-sku-price']")
Общую не получите, она формируется в динамике.




Сообщение отредактировал doober - Вторник, 15.08.2017, 11:52
 
Ответить
СообщениеЦену товара так можно получить =IMPORTXML(C2;"//span [@id='j-sku-price']")
Общую не получите, она формируется в динамике.

Автор - doober
Дата добавления - 15.08.2017 в 11:51
AndyH Дата: Вторник, 15.08.2017, 12:17 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
А количество доступных =IMPORTXML(C2;"//span [@id='j-sell-stock-num']") - выдаёт ошибку((

В ней то что не правильно?
<em data-role="stock-num" id="j-sell-stock-num" style="user-select: text;">25 шт.</em>


Сообщение отредактировал AndyH - Вторник, 15.08.2017, 12:53
 
Ответить
СообщениеА количество доступных =IMPORTXML(C2;"//span [@id='j-sell-stock-num']") - выдаёт ошибку((

В ней то что не правильно?
<em data-role="stock-num" id="j-sell-stock-num" style="user-select: text;">25 шт.</em>

Автор - AndyH
Дата добавления - 15.08.2017 в 12:17
doober Дата: Вторник, 15.08.2017, 13:16 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 983
Репутация: 340 ±
Замечаний: 0% ±

Excel 2010
В ней то что не правильно?

IMPORTXML(C2;"//em [@id='j-sell-stock-num']")


 
Ответить
Сообщение
В ней то что не правильно?

IMPORTXML(C2;"//em [@id='j-sell-stock-num']")

Автор - doober
Дата добавления - 15.08.2017 в 13:16
AndyH Дата: Вторник, 15.08.2017, 13:26 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
IMPORTXML(C2;"//em [@id='j-sell-stock-num']")

Так пробовал. Ошибку не выдаёт, но и значение не пишет. Пустая ячейка.
 
Ответить
Сообщение
IMPORTXML(C2;"//em [@id='j-sell-stock-num']")

Так пробовал. Ошибку не выдаёт, но и значение не пишет. Пустая ячейка.

Автор - AndyH
Дата добавления - 15.08.2017 в 13:26
doober Дата: Вторник, 15.08.2017, 14:03 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 983
Репутация: 340 ±
Замечаний: 0% ±

Excel 2010
Если Вы забьете =IMPORTXML(C2;"//div") , то увидите, что количества не видно.
Вывод: Надо писать скрипт на парсинг сайта




Сообщение отредактировал doober - Вторник, 15.08.2017, 14:05
 
Ответить
СообщениеЕсли Вы забьете =IMPORTXML(C2;"//div") , то увидите, что количества не видно.
Вывод: Надо писать скрипт на парсинг сайта

Автор - doober
Дата добавления - 15.08.2017 в 14:03
Faraway Дата: Понедельник, 29.11.2021, 22:49 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте. Чтоб не плодить похожих тем, спрошу уже в созданной.
Страница https://apps.apple.com/ru/app/nodle-cash/id1480763553
С нее хочу отдельно взять средний бал и количество оценок, для этого внес такую форулу:
Код
=IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]")

Результат выдачи: 4,8 • Оценок: 8
Можно ли подкорректировать формулу, чтоб получить отдельно средний бал и отдельно количество оценок?
Спасибо.
 
Ответить
СообщениеЗдравствуйте. Чтоб не плодить похожих тем, спрошу уже в созданной.
Страница https://apps.apple.com/ru/app/nodle-cash/id1480763553
С нее хочу отдельно взять средний бал и количество оценок, для этого внес такую форулу:
Код
=IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]")

Результат выдачи: 4,8 • Оценок: 8
Можно ли подкорректировать формулу, чтоб получить отдельно средний бал и отдельно количество оценок?
Спасибо.

Автор - Faraway
Дата добавления - 29.11.2021 в 22:49
Gustav Дата: Вторник, 30.11.2021, 00:35 | Сообщение № 8
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Можно ли подкорректировать формулу, чтоб получить отдельно средний бал и отдельно количество оценок?

Т.е. числа 4,8 и 8 положить в две отдельные соседние ячейки? Если да, то как-то так:
[vba]
Код
=SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ")
[/vba]
Т.е. вашу формулу оборачиваем в функцию SPLIT с разделителем - все символы между числами, т.е. " • Оценок: "


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 30.11.2021, 00:37
 
Ответить
Сообщение
Можно ли подкорректировать формулу, чтоб получить отдельно средний бал и отдельно количество оценок?

Т.е. числа 4,8 и 8 положить в две отдельные соседние ячейки? Если да, то как-то так:
[vba]
Код
=SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ")
[/vba]
Т.е. вашу формулу оборачиваем в функцию SPLIT с разделителем - все символы между числами, т.е. " • Оценок: "

Автор - Gustav
Дата добавления - 30.11.2021 в 00:35
Faraway Дата: Вторник, 30.11.2021, 11:20 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Т.е. числа 4,8 и 8 положить в две отдельные соседние ячейки?

Не совсем это имел введу, отдельно хотел получить результат оценки и отдельно для количества оценок, т.е. 2 формулы в отдельных ячейках. Но ваш вариант тоже хорошо подходит, даже лучше, так как запросов будет меньше и прогрузка быстрее. Все равно результат я хотел получить в соседних ячейках )
Еще столкнулся с проблемой, некоторые значения оценок идут через запятую, а некоторые через точку. Если через точку, то таблица не воспринимает это как число. Можно еще сюда добавить, что если есть точка - заменить ее на запятую?


Сообщение отредактировал Faraway - Вторник, 30.11.2021, 11:40
 
Ответить
Сообщение
Т.е. числа 4,8 и 8 положить в две отдельные соседние ячейки?

Не совсем это имел введу, отдельно хотел получить результат оценки и отдельно для количества оценок, т.е. 2 формулы в отдельных ячейках. Но ваш вариант тоже хорошо подходит, даже лучше, так как запросов будет меньше и прогрузка быстрее. Все равно результат я хотел получить в соседних ячейках )
Еще столкнулся с проблемой, некоторые значения оценок идут через запятую, а некоторые через точку. Если через точку, то таблица не воспринимает это как число. Можно еще сюда добавить, что если есть точка - заменить ее на запятую?

Автор - Faraway
Дата добавления - 30.11.2021 в 11:20
Gustav Дата: Вторник, 30.11.2021, 13:02 | Сообщение № 10
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
2 формулы в отдельных ячейках
если есть точка - заменить ее на запятую

Ок, две формулы для двух разных ячеек, отличаются лишь индексом в функции INDEX - 1 или 2:
[vba]
Код
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ");1);".";",")
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ");2);".";",")
[/vba]

И для лучшей наглядности и просматриваемости участвующих функций - повторяю формулы в условном виде, заменив ваши длинные ссылки на псевдоссылки "строка":
[vba]
Код
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("строка1";"строка2");" • Оценок: ");1);".";",")
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("строка1";"строка2");" • Оценок: ");2);".";",")
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
2 формулы в отдельных ячейках
если есть точка - заменить ее на запятую

Ок, две формулы для двух разных ячеек, отличаются лишь индексом в функции INDEX - 1 или 2:
[vba]
Код
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ");1);".";",")
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("https://apps.apple.com/ru/app/nodle-cash/id1480763553";"//li/figure/figcaption/text()[1]");" • Оценок: ");2);".";",")
[/vba]

И для лучшей наглядности и просматриваемости участвующих функций - повторяю формулы в условном виде, заменив ваши длинные ссылки на псевдоссылки "строка":
[vba]
Код
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("строка1";"строка2");" • Оценок: ");1);".";",")
=--SUBSTITUTE(INDEX(SPLIT(IMPORTXML("строка1";"строка2");" • Оценок: ");2);".";",")
[/vba]

Автор - Gustav
Дата добавления - 30.11.2021 в 13:02
Faraway Дата: Вторник, 30.11.2021, 14:14 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Gustav, спасибо, все понятно в формуле, кроме момента с "--" после скобок. За что отвечает такое сочетание символов?
 
Ответить
СообщениеGustav, спасибо, все понятно в формуле, кроме момента с "--" после скобок. За что отвечает такое сочетание символов?

Автор - Faraway
Дата добавления - 30.11.2021 в 14:14
Gustav Дата: Вторник, 30.11.2021, 14:19 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 30.11.2021, 14:24
 
Ответить
Сообщение
За что отвечает такое сочетание символов?

Что такое -- или как превратить ИСТИНА в 1, а ЛОЖЬ в 0?

Двойной минус перед именем функции

Автор - Gustav
Дата добавления - 30.11.2021 в 14:19
tolkant Дата: Суббота, 25.02.2023, 16:27 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Кто может помочь спарсить огромное количество данных с сайтов. Там около 20 млн страниц о компаниях необходимо спарсить в эксель, а потом выгрузить на сайт.
 
Ответить
СообщениеКто может помочь спарсить огромное количество данных с сайтов. Там около 20 млн страниц о компаниях необходимо спарсить в эксель, а потом выгрузить на сайт.

Автор - tolkant
Дата добавления - 25.02.2023 в 16:27
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!