Что нового

Поиск товара в HTML Коде Amazon

Dk

Новичок
Сообщения
358
Репутация
2
Написал скрипт, пользовался примерно год и вдруг перестал находить.

Смысл такой.
Есть текстовй файл с номерами (2.тхт)
3785560095
3994000203
3993001990
3993001966


Эти номера подставляются в куски УРЛ и получается интернетадрес.

Программа искала слово на этих страницах и если оно было найдено, то записывала номер из файла 2.тхт в 3.тхт
В данном случае искалось слово "Regateo". Например слово "Regateo", существует при "подставке" номера 3785560095, но запись не происходит

На данный момент скрипт перестал находить. Помогите наладить, я даже не знаю что не так.


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

FileOpen("3.txt")

$oUrlTeil1 = "http://www.amazon.de/gp/offer-listing/"
$oUrlTeil2 ="/ref=dp_olp_used?ie=UTF8&condition=used"

;Local $iTimer, $iSec,$iX,$iY
;Local $hTimer = TimerInit(), $iTimer = 0
Global $i


Dim $aTXT[1]
_FileReadToArray(@ScriptDir & '\2.txt', $aTXT)

For $i = 1 To $aTXT[0]
    $htmlBody = _INetGetSource($oUrlTeil1 &$aTXT[$i] & $oUrlTeil2)
$aResult = StringRegExp($htmlBody,"(?i)Regateo\b",0)
;_IEcreate($oUrlTeil1 & $aTXT[$i] & $oUrlTeil2)
 ;_ArrayDisplay($aResult,"StringRegExp Results")

  if $aResult = 1 Then
	 FileWriteLine("3.txt",$aTXT[$i])
     ToolTip($i ,8,1007)
  ;MsgBox(1,"",$aResult)

EndIf
Next
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Re: Поиск в HTML Коде

Помогите :'(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Поиск в HTML Коде

Код:
$oUrlTeil1 = "http://www.amazon.de/gp/offer-listing/"
$oUrlTeil2 ="/ref=dp_olp_used?ie=UTF8&condition=used"

$aTXT = FileReadToArray(@ScriptDir & '\2.txt')
$hFile = FileOpen(@ScriptDir & '\3.txt', 1)

For $i = 0 To UBound($aTXT) - 1
    $htmlBody = BinaryToString(InetRead($oUrlTeil1 & $aTXT[$i] & $oUrlTeil2))
	
	If StringRegExp($htmlBody,"(?i)Regateo\b") Then
		FileWriteLine($hFile, $aTXT[$i])
		ToolTip($i ,8, 1007)
	EndIf
Next

FileClose($hFile)


Это что касается скрипта.
В исходном коде страницы (любой из списка) нет строки "Regateo", поэтому и не находит.

[?]
Например слово "Regateo", существует при "подставке" номера 3785560095
Да, но только после обработки страницы (js?).
Нужно смотреть как генерируются данные на странице. Раньше видимо скрипты не использовались, поэтому и работало.
 
Автор
D

Dk

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Поиск в HTML Коде

Dk [?]
открыл её в HTML коде и он нашёл это слово
Код сгенерирован после обработки (браузером) всех сценариев на странице.
При получение кода AutoIt не делает обработку, он просто получает чистый Html.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Поиск в HTML Коде

Вот тут есть описание и пример использования Amazon API.
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Но можно как то с помощью аутоита задействовать браузер и уже с него и считывать?
Что бы это было примерно так
Открытие страница в IE
Открытие КОДA B IE
Считвание



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

я знаю эти примеры, они позволяют вытаскивать цену, свойства... но они не дают поиск по продавцам.
Ещё очень большой недостаток, что API запаздывают, как это не странно.
API обновляются примерно 1 раз в пол часа, а на html примерно 1 минута и уже новые данные.

Мне очень нужно через Аутоит.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Dk [?]
с помощью аутоита задействовать браузер и уже с него и считывать?
Можно, см. функции _IE* в справке.

Как то так:

Код:
#include <IE.au3>

$sURL_Format = "http://www.amazon.de/gp/offer-listing/%s/ref=dp_olp_used?ie=UTF8&condition=used"

$aTXT = FileReadToArray(@ScriptDir & '\2.txt')
$hFile = FileOpen(@ScriptDir & '\3.txt', 1)
$oIE = _IECreate('about:blank', 0, 0)

For $i = 0 To UBound($aTXT) - 1
	$sURL = StringFormat($sURL_Format, $aTXT[$i])
	_IENavigate($oIE, $sURL)
	
    $htmlBody = _IEBodyReadHTML($oIE)
    
    If StringRegExp($htmlBody, "(?i)Regateo\b") Then
        FileWriteLine($hFile, $aTXT[$i])
        ToolTip($i , 8, 1007)
    EndIf
Next

_IEQuit($oIE)
FileClose($hFile)
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Огромное СПАСИБО. :-[
Очень оперативый Форум) :ok:
 
Верх