Автор Тема: Помогите найти число  (Прочитано 1113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 330
  • Репутация: 2
    • Награды
Помогите найти число
« Создано: Апрель 21, 2017, 17:26:57 »
Здравствуйте

Нужно найти 93,09

Код: (html5) [Выделить]
  1. <span class="a-size-medium a-color-price sc-price sc-white-space-nowrap sc-product-price sc-price-sign a-text-bold">EUR 93,09</span>


Всегда искал так и находил
Код: AutoIt [Выделить]
StringRegExp($sHTML, 'sc-price-sign a-text-bold">EUR\h*?(\d+?,?\d*?)</span>', 3)


Но вдруг перестал работать, находит на сайте кучу других чисел, но только не это.
Помогите другим вариантом, например как то расширить условия для выборки.

Пример на сайте.
https://www.amazon.de/gp/offer-listing/3621281576/ref=dp_olp_used?ie=UTF8&condition=used

Нажимаем самый первый товар "In den Warenkorb". Потом в правом верхнем углу "Einkaufswagen"

И вы попадёте на страницу с которой я хочу взять эту цену.
Если есть более лучшии способ буду очень рад.
« Последнее редактирование: Апрель 21, 2017, 17:48:48 от Garrett »

Русское сообщество AutoIt

Помогите найти число
« Отправлен: Апрель 21, 2017, 17:26:57 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3865
  • Репутация: 955
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Помогите найти число
« Ответ #1, Отправлен: Апрель 21, 2017, 18:11:47 »
Dk  [?]
Цитировать
Но вдруг перестал работать
А так?
Код: AutoIt [Выделить]
#include <Array.au3>
;...
$sText = 'ваш html текст'
$sPattern = '<span.*sc-product-price sc-price-sign.*[^>]*>(EUR[\s\S]*?)<\/span>'
$aData = StringRegExp($sText, $sPattern, 3)

_ArrayDisplay($aData)


Цитировать
Если есть более лучшии способ буду очень рад.
Через IE.

Скорблю и помню.




Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 330

  • Автор темы
  • Репутация: 2
    • Награды
Re: Помогите найти число
« Ответ #2, Отправлен: Апрель 21, 2017, 18:49:57 »
Garrett

К сожалению не работает.

Пожалуйста попробуйте именно через сайт.
Я пользуюсь IE. (Альтернативный вариант для IE)

Онлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 459
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Помогите найти число
« Ответ #3, Отправлен: Апрель 21, 2017, 21:35:04 »
Dk
Т.е вы используете IE но все равно все делаете через регулярные выражения, я правильно понял, если так, то для чего?

Русское сообщество AutoIt

Re: Помогите найти число
« Ответ #3 Отправлен: Апрель 21, 2017, 21:35:04 »

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 330

  • Автор темы
  • Репутация: 2
    • Награды
Re: Помогите найти число
« Ответ #4, Отправлен: Апрель 21, 2017, 21:43:54 »
Dk
Т.е вы используете IE но все равно все делаете через регулярные выражения, я правильно понял, если так, то для чего?


Так как знаний хватило ровно на это. :-[
Другими словами в своё время сделал как мог ...
а DOM мне вообще не ведам. :-\

Это часть большого скрипта... и там всё было написанно примерно так

Код: AutoIt [Выделить]
$oIE = _IECreate('https://www.amazon.de/gp/cart/view.html/ref=lh_cart_vc_btn')
      $sHTML = _IEDocReadHTML ($oIE)
      $aPrice2=StringRegExp($sHTML, 'sc-price-sign a-text-bold">EUR\h*?(\d+?,?\d*?)</span>', 3)
 

Любую информацию я выдёргивал именно так и использовал далее
Я боюсь в силу своего незнания окончательно нарушить там гармонию.
« Последнее редактирование: Апрель 21, 2017, 21:52:30 от Dk »

Помечен как лучший ответ пользователем Dk Отправлен Апрель 21, 2017, 22:00:36

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3865
  • Репутация: 955
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Помогите найти число
« Ответ #5, Отправлен: Апрель 21, 2017, 21:57:36 »
Dk  [?]
Цитировать
Альтернативный вариант для IE
Код: AutoIt [Выделить]
$sURL = 'https://www.amazon.de/gp/cart/view.html/ref=lh_cart_vc_btn'

#include <IE.au3>

$oIE = _IEAttach($sURL, 'URL')
ConsoleWrite($oIE.document.getElementsByClassName("a-spacing-small")(0).innerText & @CR)


Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 330

  • Автор темы
  • Репутация: 2
    • Награды
Re: Помогите найти число
« Ответ #6, Отправлен: Апрель 21, 2017, 22:02:15 »
Garrett

Да всё работает. :)
Находит. Тему пока не закрываю, сейчас вмонтирую себе в скрипт и проверю полностью ...

Мне нужно что бы было только число, а там ешё выходит EUR :'(
« Последнее редактирование: Апрель 21, 2017, 22:28:33 от Dk »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3865
  • Репутация: 955
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Помогите найти число
« Ответ #7, Отправлен: Апрель 21, 2017, 22:32:43 »
Dk  [?]
Цитировать
только число
Код: AutoIt [Выделить]
ConsoleWrite(StringTrimLeft(StringStripWS($oIE.document.getElementsByClassName("a-spacing-small")(0).innerText, 8), 3) & @CR)


Русское сообщество AutoIt

Re: Помогите найти число
« Ответ #7 Отправлен: Апрель 21, 2017, 22:32:43 »

Оффлайн Dk [?]

  • Новичок
  • *
  • Сообщений: 330

  • Автор темы
  • Репутация: 2
    • Награды
Re: Помогите найти число
« Ответ #8, Отправлен: Апрель 21, 2017, 22:58:40 »
Garrett

Всё работает.
Спасибо. :IL_AutoIt_1:

Тему закрываю. :)

Русское сообщество AutoIt

Re: Помогите найти число
« Ответ #8 Отправлен: Апрель 21, 2017, 22:58:40 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
13 Ответов
6062 Просмотров
Последний ответ Май 07, 2010, 12:34:45
от Lum
7 Ответов
5022 Просмотров
Последний ответ Март 13, 2011, 01:29:02
от Garrett
0 Ответов
2443 Просмотров
Последний ответ Март 05, 2011, 01:39:17
от Yashied
2 Ответов
1692 Просмотров
Последний ответ Август 13, 2012, 00:31:09
от dreamorder
4 Ответов
1871 Просмотров
Последний ответ Июнь 10, 2013, 16:24:26
от andriy111
1 Ответов
905 Просмотров
Последний ответ Май 05, 2014, 13:03:26
от ildar
5 Ответов
1991 Просмотров
Последний ответ Ноябрь 06, 2014, 21:05:20
от mvalera
0 Ответов
522 Просмотров
Последний ответ Ноябрь 06, 2014, 19:00:01
от madmasles
4 Ответов
1088 Просмотров
Последний ответ Декабрь 13, 2014, 23:41:50
от alex33
18 Ответов
1004 Просмотров
Последний ответ Март 10, 2017, 22:04:59
от Alofa