Что нового

Парсинг цены.

Maria

Новичок
Сообщения
29
Репутация
0
Здравствуйте помогите вытащить цену вот отсюда

<span _ngcontent-rebuy-app-c60="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 31,99&nbsp;€ </span>

Ну никак не получается ((
 

Alecsis

Осваивающий
Сообщения
122
Репутация
43
Здравствуйте! М.б. так?
Код:
Opt('MustDeclareVars', True)
#include <StringConstants.au3>
; Здравствуйте помогите вытащить цену вот отсюда ©
;
; 1. Предполагается, что цена состоит из как минимум 1 цифры, символа «,» и двух цифр за этой запятой;
; 2. Из вопроса не ясно:
;    – цена обязательно с центами/копейками/итп или м.б. целым числом без запятой?
;    – нужен ли в выдаче символ «€» (или там м.б. доллар/рубль/что-то ещё)?
;    – разделитель целой и дроби всегда запятая?
;    – сама конструкция span именно такова или м.б. варианты?
;
; В простейшем случае (п.1) как-то так:
;
Local _
  $sText  = '<span _ngcontent-rebuy-app-c60="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 31,99&nbsp;€ </span>', _ ; исх строка
  $sRExp  = '<span [^>]+>\s*(\d+,\d\d).*</span>',         _ ; рег выражение для выборки цены как "nn,nn"
  $sRExp1 = '<span [^>]+>\s*(\d+(?:,\d\d)?).*</span>',    _ ; рег выражение для выборки цены как целой либо с центами
  $vResult

$vResult = StringRegExp($sText, $sRExp, $STR_REGEXPARRAYMATCH)
If @error Then
  ConsoleWrite('Error!' & @CRLF)
  Exit 1
EndIf
ConsoleWrite('Ok, price = ' & $vResult[0])
Exit 0
 
Автор
M

Maria

Новичок
Сообщения
29
Репутация
0
Супер! Всё работает. Вы правильно меня поняли)))

Хотела бы усложнить задачу. Новую тему открывать не буду. Может вы сможете помочь )

Есть сайт.


Если вбить в поиск номер (например вот этот 3446435484), то появляется окошко, с ценой и другой информацией.
Проблема в том, что я не могу "зацепиться за окошко", оно исчезает, как только нажать куда-нибудь, но его можно исследовать, и там есть "ветка". Но как только я нажимаю, что бы пройти по тегам глубже, всё исчезает. Как быть?
Сообщение автоматически объединено:

Мне нужна цена и проверка на существование этой надписи "Derzeit nicht verfügbar"
 

Alecsis

Осваивающий
Сообщения
122
Репутация
43
Хотела бы усложнить задачу. Новую тему открывать не буду. Может вы сможете помочь )
Есть сайт.

Если вбить в поиск номер (например вот этот 3446435484), то появляется окошко, с ценой и другой информацией.
Мне нужна цена и проверка на существование этой надписи "Derzeit nicht verfügbar"
Постараюсь, но сразу доп. вопросы. За что именно зацепиться при разборе странички? Ваши примеры:
Было::
<span _ngcontent-rebuy-app-c60="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 31,99&nbsp;€ </span
Стало::
<span _ngcontent-sc81="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 32,99&nbsp;€ </span>
Напрашивается вот что:
1. Прочитать страничку по адресу https://www.rebuy.de/kaufen/suchen?q=3446435484
2. Найти там span по образцу «data-cy="product-price"» и выдрать оттуда цену условно вида <евро>[,<центы>]
3. Проверить, есть ли «заклинание» "Derzeit nicht verfügbar"
4. Что важнее: пп 2 или 3?
В принципе всё элементарно: если предположения пп1-2 верны, то оформляем в виде функции и погнали :smile:
Сообщение автоматически объединено:

Постараюсь, но сразу доп. вопросы. За что именно зацепиться при разборе странички? Ваши примеры:
Было::
<span _ngcontent-rebuy-app-c60="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 31,99&nbsp;€ </span
Стало::
<span _ngcontent-sc81="" data-cy="product-price" class="font-weight-bold mr-3 price-font-size"> 32,99&nbsp;€ </span>
Напрашивается вот что:
1. Прочитать страничку по адресу https://www.rebuy.de/kaufen/suchen?q=3446435484
2. Найти там span по образцу «data-cy="product-price"» и выдрать оттуда цену условно вида <евро>[,<центы>]
3. Проверить, есть ли «заклинание» "Derzeit nicht verfügbar"
4. Что важнее: пп 2 или 3?
В принципе всё элементарно: если предположения пп1-2 верны, то оформляем в виде функции и погнали :smile:
Вдогонку:
 

Вложения

  • Maria2.au3
    3.2 КБ · Просмотры: 3
Последнее редактирование:
Автор
M

Maria

Новичок
Сообщения
29
Репутация
0
Огромное СПАСИБО!))
ВСЁ КАК НАДО!

А у вас случайно нет опыта с Selenium Webdriverom ?



У меня вот простой вопрос.

Написан скрипт - парсит страницы в цикле (100 штук). На сколько я знаю выполнение параллельных задач в Аутоит не возможно, там всё шаг за шагом.

Я создала ехе запустила его (там идёт парсинг от 1 до 50). Работает. Я сделала второй ехе, там парсинг от 51 до 100. И там и там я использую Firefox. Но когда я запускаю второй ехе, то первый перестаёт работать.
Можно ли как то сделать так, что бы они работали вместе не мешая друг другу? (без установки дополнительного FF в другой каталог). Так как два скрипта работают, но всё равно некорректно .... да и само решение некрасивое.
Два вебдрайвера, например Chrome и FF, я тоже не хочу использовать.
ЕХЕ-файлы раскинуты в разных каталогах со своим Webdriver, но всё равно мешают друг другу.

Такое вообще возможно?
(видимо пора осваивать питон)
Сообщение автоматически объединено:

Вообще у меня следующая проблема, прям головная боль.

Я хочу добиться, что бы

Скрипт сканирует 10000 продуктов, как только он находит нужный, он должен открывать новую вкладку и идти уже по этому продукту далее (пасить итд), и так должно происходить со всеми продуктами, которые подпадают под мои параметры, но при этом основной цикл не должен останавливаться и ждать, а должен дальше продолжать сканирование 10000 продуктов (что быт не терять время)
 
Последнее редактирование:
Верх