Что нового

[Автоматизация] Достать информацию с веб-страницы

modnik

Знающий
Сообщения
138
Репутация
13
Добрый день!

Прошу помочь с подходом, возможно ли вообще такое сделать ?

Есть страница предмета в Steam http://steamcommunity.com/market/listings/730/AWP%20%7C%20Asiimov%20%28Battle-Scarred%29

Необходимо вытащить данные которые отметил на картинке

 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
Ап. Прошу хотябы направить куда копать


Код:
$oIE = _IECreate("http://steamcommunity.com/market/listings/730/AWP%20%7C%20Asiimov%20%28Battle-Scarred%29")
Sleep(1000)
$oTable = _IETableGetCollection ($oIE, 1)
_ArrayDisplay($otable,1)



Это показывает ошибку на неверный тип данных.
 
A

Alofa

Гость
modnik вот рабочий пример.
Код:
#include <Array.au3>
#include <IE.au3>

Local $sURL = 'http://steamcommunity.com/market/listings/730/AWP%20%7C%20Asiimov%20%28Battle-Scarred%29'
Local $oIE = _IECreate($sURL, 0, 0)
Dim $aSection[2][2] = [['market_commodity_buyreqeusts_table', 'td\halign\="right">'], ['searchResultsRows', 'market_listing_price_with_fee">']]

For $i= 0 To 1
	Local $oDiv, $aRes
	Do
		$oDiv = _IEGetObjById($oIE, $aSection[$i][0])
		If Not $oDiv Then Sleep(200)
	Until Not @error
	$sTable = _IEPropertyGet($oDiv, 'innerhtml')
	$aRes = StringRegExp($sTable, $aSection[$i][1] & '([^<]+)', 3)
	If IsArray($aRes) Then
		_ArrayDisplay($aRes, 'Данные ' & $i)
	Else
		MsgBox(16, 'Ошибка!', 'Не удалось считать Данные ' & $i + 1)
	EndIf
Next

_IEQuit($oIE)
Но несмотря на это прошу не учиться все проворачивать именно так - Сам еще только учусь смотреть в эту сторону Autoit.

OffTopic:
Прошу знающих людей не полениться и проверить код.
В частности меня интересует, как в нем избавиться от "StringRegExp()" - знаю это можно сделать, но пока не могу.
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
Спасибо большое за рабочий пример.


Правильно я понимаю, чтобы получить ДАнные 1, надо вручную открыть эту таблицу (по у молчанию она скрыта)
 
Автор
M

modnik

Знающий
Сообщения
138
Репутация
13
У меня почему то данные1 не всегда показывает. Один раз из 10. Это почему так?


Добавлено:
Сообщение автоматически объединено:

Понял, увеличил Sleep
 
A

Alofa

Гость
modnik сказал(а):
У меня почему то данные1 не всегда показывает.
...
Понял, увеличил Sleep
На этой странице данные спойлера "Подробнее" подгружаются чуть позже, поэтому я думаю есть смысл поменять очередность действий:
Код:
; Замените
Dim $aSection[2][2] = [['market_commodity_buyreqeusts_table', 'td\halign\="right">'], ['searchResultsRows', 'market_listing_price_with_fee">']]
; на
Dim $aSection[2][2] = [['searchResultsRows', 'market_listing_price_with_fee">'], ['market_commodity_buyreqeusts_table', 'td\halign\="right">']]
 
Верх