Что нового

[Автоматизация] Копирование номера аукцёна с Ebay в текстовой файл

Dk

Новичок
Сообщения
358
Репутация
2
Версия AutoIt: 3.

Описание:
Здравствуйте.
Мне нужна помошь.
Вообщем существует такой аукцён как ебай, я думаю он многим знаком, так вот мне нужно следуюшее.

Я набираю в поиске определённые параметры, например "отвёртка", мне выдаёт 5 тысяч результатов - аукцёнов.
Каждый ауктцион имеет свой номмер - наименование артикля, например на немецком сайте он написан так "Artikelnummer: 270733761466", на русском сайте "Номер товара: 270727713216 ". Их всегда можно увидет если зайти на определённый аукцион, они расположенны всегда на одном и том же месте. Так вот мне нужно что бы все 5 тыс. Номеров были автоматически записанны в текстовой файл, каждый номер в отделной строчке.

Можно конечно сделат ето и с помощю Аутокликера, но ето длится очень долго.
Нужен имменно вариант который бы делал ето именно не на визуалном уровне, а как обычный Граббер.
Зарание бошое спасибо.
Примечания:


Tekst byl Napisan translitom ibo russkoj klwiatury ne imeju na dannyj momemnt.
Proshu ne obsuzhdat oshibli i prochie. A pomoch po sushestwu.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
А опечатки типа "аукцён", "сделат" и прочая хачинская атрибутика это типа модная в наши дни фишка? Или автор и правда из хачикистана?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Belfigor [?]
хачинская атрибутика это типа модная в наши дни фишка? Или автор и правда из хачикистана?
Belfigor
Без расизма пожалуйста. Другие национальности тоже надо уважать.
И в примечаниях написано, что текст был написан транслитом.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Dk
А можно попросить пример запроса. И ссылку выложить сюда?
Я вот просто в упор не вижу чего Вы требуете =)
http://shop.ebay.com/?_from=R40&_npmv=3&_trksid=p3902.m570.l1313&_nkw=netbook&_sacat=See-All-Categories
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
http://cgi.ebay.com/NEW-7-Mini-Laptop-Notebook-WIFI-Windows-2GB-netbook-RD-/260769910311?pt=Laptops_Nov05&hash=item3cb7190e27
Думаю это когда открываешь любую позицию...
Item number: 260769910311

Код:
#include <array.au3>
	$WinUrl = 'http://cgi.ebay.com/NEW-7-Mini-Laptop-Notebook-WIFI-Windows-2GB-netbook-RD-/260769910311?pt=Laptops_Nov05&hash=item3cb7190e27'
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
	$oHTTP.Open('GET', $WinUrl, False)
	$oHTTP.Send('')
	$oHTTP.WaitForResponse
	$sHTML = $oHTTP.ResponseText
	$aLinksRaw = StringRegExp($sHTML,'(?si)inf_lab.+?"top">([\d]+?)<', 3)
	_ArrayDisplay($aLinksRaw)
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Да верно, на английском сайте ето "Item number: 260769910311"

Ps
Етот номер показвается толко если зайти на сам Артикль
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Автор: zlo-kazan
Цитата
http://cgi.ebay.com/NEW-7-Mini-Laptop-Notebook-WIFI-Windows-2GB-netbook-RD-/260769910311?pt=Laptops_Nov05&hash=item3cb7190e27
Думаю это когда открываешь любую позицию...
Item number: 260769910311


Всё верно.

Но трудностю для меня является именно что бы не указыват каждую страницу, а что бы программа сама брала из всего поиска по очерёдности каждую страницу и выдёргивала етот номер.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Dk [?]
Етот номер показвается толко если зайти на сам Артикль
Нет. Это номер находится в любой ссылке на товар. Поэтому можно его брать сразу из ссылки на лот.
[box]httр://cgi.ebay.com/NEW-7-Mini-Netbook-Laptop-Notebook-WIFI-Windows-hd-RED-/270546055072?pt=Laptops_Nov05&hash=item3efdcd2fa0[/box]
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Нет. Это номер находится в любой ссылке на товар. Поэтому можно его брать сразу из ссылки на лот.
httр://cgi.ebay.com/NEW-7-Mini-Netbook-Laptop-Notebook-WIFI-Windows-hd-RED-/270546055072?pt=Laptops_Nov05&hash=item3efdcd2fa0



Да, я ето тоже заметил.

Но оснавной проблеммой остаётся именно аватоматический перебор - выдёргивание номера из резултатов поиска.
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Ээээ... а нужно все страницы перебрать? О_о Просто для notebook это 427 страниц... На каждые 10 страниц где-то 11 сек.
для:
http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn=1
Код:
#include <array.au3>
	Global $WinUrl = 'http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn='
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
	$k=0
	$i=0
	$timer=TimerInit()
	Dim $aLinks[1]
	While 1
	$i+=1
	toolTip("Страница = " & $i & " Прошло времени = " & round((Timerdiff($timer)/1000), 0) & " сек", 0,0)
	$oHTTP.Open('GET', $WinUrl & $i, False)
	$oHTTP.Send('')
	$oHTTP.WaitForResponse
	$sHTML = $oHTTP.ResponseText
	IF StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 0)=0 then exitloop
	$aLinksRaw = StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 3)
	For $j=0 to uBound($aLinksRaw)-1
	ReDim $aLinks[$k+2]
	$aLinks[$k]=$aLinksRaw[$j]
	$k+=1
	Next
	WEnd
	_ArrayDisplay($aLinks)

Осталось только ссылку вытащить которая генерируется после перехода на 2-ю страницу и как бы все... можно будет только слово для поиска вставлять... :smile:

Хм. если выводить по 200 результатов, то поиск будет в 2 раза быстрее.
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
zlo-kazan сказал(а):
Ээээ... а нужно все страницы перебрать? О_о Просто для notebook это 427 страниц... На каждые 10 страниц где-то 11 сек.
для:
http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn=1
Код:
#include <array.au3>
	Global $WinUrl = 'http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn='
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
	$k=0
	$i=0
	$timer=TimerInit()
	Dim $aLinks[1]
	While 1
	$i+=1
	toolTip("Страница = " & $i & " Прошло времени = " & round((Timerdiff($timer)/1000), 0) & " сек", 0,0)
	$oHTTP.Open('GET', $WinUrl & $i, False)
	$oHTTP.Send('')
	$oHTTP.WaitForResponse
	$sHTML = $oHTTP.ResponseText
	IF StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 0)=0 then exitloop
	$aLinksRaw = StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 3)
	For $j=0 to uBound($aLinksRaw)-1
	ReDim $aLinks[$k+2]
	$aLinks[$k]=$aLinksRaw[$j]
	$k+=1
	Next
	WEnd
	_ArrayDisplay($aLinks)

Осталось только ссылку вытащить которая генерируется после перехода на 2-ю страницу и как бы все... можно будет только слово для поиска вставлять... :smile:

Хм. если выводить по 200 результатов, то поиск будет в 2 раза быстрее.


Так нy пока всё вроде и верно.

Толко нужно что бы он ешё каждый номмер, который вытащил, сохранил в обычный тхт столбиком
что в принцыпе и было сказанно вами )
 

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Belfigor сказал(а):
А опечатки типа "аукцён", "сделат" и прочая хачинская атрибутика это типа модная в наши дни фишка? Или автор и правда из хачикистана?
За такое оскарбление надо банить :mad:
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Dk сказал(а):
zlo-kazan сказал(а):
Ээээ... а нужно все страницы перебрать? О_о Просто для notebook это 427 страниц... На каждые 10 страниц где-то 11 сек.
для:
http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn=1
Код:
#include <array.au3>
	Global $WinUrl = 'http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4981&rt=nc&_nkw=netbook&_npmv=3&_trksid=p3286.c0.m14.l1513&_pgn='
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
	$k=0
	$i=0
	$timer=TimerInit()
	Dim $aLinks[1]
	While 1
	$i+=1
	toolTip("Страница = " & $i & " Прошло времени = " & round((Timerdiff($timer)/1000), 0) & " сек", 0,0)
	$oHTTP.Open('GET', $WinUrl & $i, False)
	$oHTTP.Send('')
	$oHTTP.WaitForResponse
	$sHTML = $oHTTP.ResponseText
	IF StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 0)=0 then exitloop
	$aLinksRaw = StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 3)
	For $j=0 to uBound($aLinksRaw)-1
	ReDim $aLinks[$k+2]
	$aLinks[$k]=$aLinksRaw[$j]
	$k+=1
	Next
	WEnd
	_ArrayDisplay($aLinks)

Осталось только ссылку вытащить которая генерируется после перехода на 2-ю страницу и как бы все... можно будет только слово для поиска вставлять... :smile:

Хм. если выводить по 200 результатов, то поиск будет в 2 раза быстрее.


Так нy пока всё вроде и верно.

Толко нужно что бы он ешё каждый номмер, который вытащил, сохранил в обычный тхт столбиком
что в принцыпе и было сказанно вами )



Всем спасибо ета проблема - задача была решена ))
Zlo-kazan, otdelnoe spasibo :ok:
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
http://shop.ebay.com/?_from=R40&_trksid=p3910.m570.l1313&_nkw=netbook&_sacat=See-All-Categories
Осталось только втащить ссылку с кнопки next или картинки со стрелочкой вправо или циферки 2 в самом низу... но не получается... :wall_brake:
В наличии есть страничка IE... привязаная к переменной... но вытащить традиционными способами не получается....

Dk сказал(а):
Всем спасибо ета проблема - задача была решена ))
Zlo-kazan, otdelnoe spasibo :ok:
Ну раз так... тогда не буду долбиться дальше об стенку... :smile:
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
zlo-kazan сказал(а):
http://shop.ebay.com/?_from=R40&_trksid=p3910.m570.l1313&_nkw=netbook&_sacat=See-All-Categories
Осталось только втащить ссылку с кнопки next или картинки со стрелочкой вправо или циферки 2 в самом низу... но не получается... :wall_brake:
В наличии есть страничка IE... привязаная к переменной... но вытащить традиционными способами не получается....

Dk сказал(а):
Всем спасибо ета проблема - задача была решена ))
Zlo-kazan, otdelnoe spasibo :ok:
Ну раз так... тогда не буду долбиться дальше об стенку... :smile:

ну щообше ето был очень маленкий кусочек того что мне нужно.
Мне нужна одна полноценная программа, готов заплатит
Единстщенная проблема, могу опалатит, только c PayPal
если есть пейпал то можем обсудит подробнее.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
zlo-kazan [?]
Осталось только втащить ссылку с кнопки next или картинки со стрелочкой вправо или циферки 2 в самом низу
Зачем? Берите общее число страниц, далее в цикле приписывайте к ссылке httр://shop.ebay.com/?_from=R40&_trksid=p3910.m570.l1313&_nkw=netbook&_sacat=See-All-Categories&_pgn=N где N это страница ;)
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Вот это я не внимательный... :wacko:
В этой ссылке httр://shop.ebay.com/?_from=R40&_trksid=p3910.m570.l1313&_nkw=netbook&_sacat=See-All-Categories&_pgn=N вот оно поисковое слово... :smile: Теперь все проще в разы! :smile:
Раньше пытался открыть главную страницу ввести notebook и потом взять ссылку... ссылку забирать стал, но перестало собирать ссылки хотя часть сбора не менялась и повторяющихся переменных не было... :smile:
P.S. перебор ссылок так и шел... через смену N.
Код:
#include <array.au3>
	
	$_sSearch = 'netbook'					; слово, которое будем искать
	$Fname="Item.txt"						; файл в который будем собирать ссылки

	$WinUrl ='httр://shop.ebay.com/?_from=R40&_trksid=p3910.m570.l1313&_nkw=' & $_sSearch & '&_sacat=See-All-Categories&_pgn='
;	msgbox(0,"",$WinUrl)
	$o123412 =_IECreate($WinUrl)
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
    $k=0
    $i=0
    $timer=TimerInit()
    Dim $aLinks[1]
    While 1
    $i+=1
    toolTip("Страница = " & $i & " Прошло времени = " & round((Timerdiff($timer)/1000), 0) & " сек", 0,0)
    $oHTTP.Open('GET', $WinUrl & $i, False)
    $oHTTP.Send('')
    $oHTTP.WaitForResponse
    $sHTML = $oHTTP.ResponseText
    IF StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 0)=0 then exitloop
    $aLinksRaw = StringRegExp($sHTML,'(?si)http://cgi.ebay.com.+?/([\d]+?)[\?]pt=.+?"', 3)
    For $j=0 to uBound($aLinksRaw)-1
    ReDim $aLinks[$k+2]
    $aLinks[$k]=$aLinksRaw[$j]
    $k+=1
    Next
    WEnd
 ;   _ArrayDisplay($aLinks)

	
	FileOpen($Fname, 2)
	For $i=0 to UBound($aLinks)-1
	FileWriteLine($Fname, $aLinks[$i])
	Next
	FileClose($Fname)
 
Автор
D

Dk

Новичок
Сообщения
358
Репутация
2
Пожалуйсто помогите.

Скрипт от зло казана перестал работаьт. Исправте пожалуйсто ошибку.
 
Верх