Что нового

Считывание строки с HTML

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
#include <IE.au3>

$oIE = _IECreate("https://www.amazon.de/gp/offer-listing/3794529863/ref=dp_olp_used?ie=UTF8&condition=used.")

$oELs = _IETagNameGetCollection($oIE,"span")

For $oEL In $oELs
   If StringInStr(StringStripWS($oEL.innerText, 8), "Gebraucht-Sehrgut") Then
	  ConsoleWrite($oEL.innerText & @CR)
	  ExitLoop
   EndIf
Next
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Garrett

Спасибо.
Для меня очень необычное решение.
Я ожидал, что будет сделано через Regexp

Дело в том что "Zustand "может быть разным. (Gut, sehr gut, wie neu, neu usw) И в этом случае скрипт не сработает.
Мне бы хотелось, что бы скрипт считывал всё в массив. Скрипт должен всё же оринетироваться не на сам текст, а на теги между которыми постоянно стоит Этот текст.
 

m_hakk

Новичок
Сообщения
12
Репутация
1
Вот так? в массив сам запишешь?
Код:
#include <IE.au3>

$oIE = _IECreate("https://www.amazon.de/gp/offer-listing/3794529863/ref=dp_olp_used?ie=UTF8&condition=used.")

$oEL = $oIE.document.getElementsByClassName('a-size-medium olpCondition a-text-bold')

For $i = 0 to $oEL.length-1
   ConsoleWrite(StringStripWS($oEL.item($i).innerHTML, 8) & @CR)
Next
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
m_hakk сказал(а):
Вот так? в массив сам запишешь?

Спасибо работает.
К сожалению у меня выходит только через промежуточный файл... на другoе знаний не хватает
Помогите :-[ :-[
 

m_hakk

Новичок
Сообщения
12
Репутация
1
Dk, если я правильно понял, то вам нужно просто заполнить массив

Код:
#include <IE.au3>
#include <Array.au3>

$oIE = _IECreate("https://www.amazon.de/gp/offer-listing/3794529863/ref=dp_olp_used?ie=UTF8&condition=used.")

$oEL = $oIE.document.getElementsByClassName('a-size-medium olpCondition a-text-bold')

Global $Arr[$oEL.length]
;~ или
;~ Global $Arr[10] ;потому что на странице отображается 10 элементов

For $i = 0 to $oEL.length-1
   $Arr[$i] = StringStripWS($oEL.item($i).innerHTML, 8)
   ConsoleWrite($Arr[$i] & @CR) ;проверка
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Два варианта: целевой и расширенный (закомментированный).
Код:
#include <Array.au3>
#include <IE.au3>

$i = 0
$oIE = _IECreate("https://www.amazon.de/gp/offer-listing/3794529863/ref=dp_olp_used?ie=UTF8&condition=used.")

; $oELs = _IETagNameGetCollection($oIE,"div")
$oELs = _IETagNameGetCollection($oIE,"span")
Local $aText[100]

For $oEL In $oELs
   ; If $oEL.className == "a-row a-spacing-mini olpOffer" Then
   If $oEL.className == "a-size-medium olpCondition a-text-bold" Then
      ; $aText[$i] = $oEL.firstChild.nextSibling.firstChild.innerText
      $aText[$i] = $oEL.innerText
		$i +=1
   EndIf
Next

ReDim $aText[$i]
_ArrayDisplay($aText)
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Оба варианта работают. :smile: :smile:
Большое всем спасибо за помощь.
Тему закрываю :IL_AutoIt_1:
 
Верх