Что нового

Бот для "Войны племён"

serg-pl-1

Новичок
Сообщения
14
Репутация
1
У меня не получается пройти авторизацию на сайте.
http://www.voyna-plemyon.ru/

Код:
#include <IE.au3>

Global $Link = "http://www.voyna-plemyon.ru/", $User = "User", $Pass = "123"
$oIE = _IECreate($Link, 0, 0)
Login($User, $Pass)

Func Login($Username, $Password)
$oForm = _IEFormGetCollection($oIE, 0)
$oQuery = _IEFormGetObjByName($oForm, "user")
_IEFormElementSetValue($oQuery, $Username)
$oQuery = _IEFormGetObjByName($oForm, "password")
_IEFormElementSetValue($oQuery, $Password)
_IEFormSubmit($oForm)
$Source = _IEDocReadHTML($oIE)
EndFunc



А вот как нажать на кнопку "Вход" и потом выбрать нужный мир, куда зайти, не знаю :(
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
serg-pl-1
Попробуйте так:
Код:
#include <IE.au3>

$sLink = "http://www.voyna-plemyon.ru/"
$sUser = "User"
$sPass = "123"

$oIE = _IECreate($sLink)
$oUser = _IEGetObjByName($oIE, "user")
_IEFormElementSetValue($oUser, $sUser)
$oPass = _IEGetObjByName($oIE, "password")
_IEFormElementSetValue($oPass, $sPass)
$oSpans = _IETagNameGetCollection($oIE, "span")
For $oSpan In $oSpans
	If StringInStr($oSpan.innertext, 'Вход') Then
		_IEAction($oSpan, 'click')
		ExitLoop
	EndIf
Next
_IELoadWait($oIE)
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Re: Бот для \"Войны племён\"

а как выбрать нужный мир?
Код:
<div id="non_script_login">
	            <label for="server_select" id="server_select_label">
	                <strong >Мир:</strong>

	                <select id="server_select" class="server_select" name="server" >
											                        <option value="ru1" >Мир 1</option>
						                        <option value="ru2" >Мир 2</option>
						                        <option value="ru3" >Мир 3</option>
						                        <option value="ru4" >Мир 4</option>
						                        <option value="ru5" >Мир 5</option>

						                        <option value="ru6" >Мир 6</option>
						                        <option value="ru7" >Мир 7</option>
						                        <option value="ru8" >Мир 8</option>
						                        <option value="ru9" >Мир 9</option>
						                        <option value="ru10" >Мир 10</option>
						                        <option value="ru11" >Мир 11</option>

						                </select>
	            </label>
				<input type="submit" id="login_button" style="margin-bottom:10px; width:126px; float: right" value="Вход"/>
			</div>



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

сорри нашёл ответ :-[
http://autoit-script.ru/index.php/topic,2172.msg15918.html#msg15918
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Как мне эту таблицу закинуть в массив?

Код:
<TABLE class=vis id=production_table><TBODY>
<TR>
<TH>Деревня</TH>
<TH>Очки</TH>
<TH>Сырьё</TH>
<TH>Склад</TH>
<TH>Усадьба</TH></TR>
<TR class="nowrap row_a" style="WHITE-SPACE: nowrap">
<TD><SPAN id=label_77900><A href="/game.php?village=77900&amp;screen=overview"><SPAN id=label_text_77900>Здесь живёт (284|328) К32</SPAN> </A></SPAN><SPAN id=edit_77900 style="DISPLAY: none"><INPUT id=edit_input_77900 value="Здесь живёт"> <INPUT onclick="editSubmitNew('label_77900', 'label_text_77900', 'edit_77900', 'edit_input_77900', '');" type=button value=OK> </SPAN></TD>
<TD>8<SPAN class=grey>.</SPAN>972</TD>
<TD align=middle><IMG title=Дерево alt="" src="graphic/holz.png?1">53<SPAN class=grey>.</SPAN>997 <IMG title=Глина alt="" src="graphic/lehm.png?1">73<SPAN class=grey>.</SPAN>564 <IMG title=Металл alt="" src="graphic/eisen.png?1">64<SPAN class=grey>.</SPAN>423 </TD>
<TD>400000</TD>
<TD>17893/24000</TD></TR>
<TR class="nowrap row_b" style="WHITE-SPACE: nowrap">
<TD><SPAN id=label_71486><A href="/game.php?village=71486&amp;screen=overview"><IMG title=Подкрепление alt="" src="graphic/command/support.png?1"><SPAN id=label_text_71486>Здесь живёт (285|331) К32</SPAN> </A></SPAN><SPAN id=edit_71486 style="DISPLAY: none"><INPUT id=edit_input_71486 value="Здесь живёт"> <INPUT onclick="editSubmitNew('label_71486', 'label_text_71486', 'edit_71486', 'edit_input_71486', '');" type=button value=OK> </SPAN></TD>
<TD>6<SPAN class=grey>.</SPAN>339</TD>
<TD align=middle><IMG title=Дерево alt="" src="graphic/holz.png?1">83<SPAN class=grey>.</SPAN>013 <IMG title=Глина alt="" src="graphic/lehm.png?1">60<SPAN class=grey>.</SPAN>751 <IMG title=Металл alt="" src="graphic/eisen.png?1">71<SPAN class=grey>.</SPAN>286 </TD>
<TD>115798</TD>
<TD>8252/10848</TD></TR>
<TR class="nowrap row_a" style="WHITE-SPACE: nowrap">
<TD><SPAN id=label_73088><A href="/game.php?village=73088&amp;screen=overview"><IMG title=Нападение alt="" src="graphic/command/attack.png?1"><IMG title=Подкрепление alt="" src="graphic/command/support.png?1"><SPAN id=label_text_73088>Здесь живёт (283|331) К32</SPAN> </A></SPAN><SPAN id=edit_73088 style="DISPLAY: none"><INPUT id=edit_input_73088 value="Здесь живёт"> <INPUT onclick="editSubmitNew('label_73088', 'label_text_73088', 'edit_73088', 'edit_input_73088', '');" type=button value=OK> </SPAN></TD>
<TD>7<SPAN class=grey>.</SPAN>921</TD>
<TD align=middle><IMG title=Дерево alt="" src="graphic/holz.png?1">42<SPAN class=grey>.</SPAN>272 <IMG title=Глина alt="" src="graphic/lehm.png?1">35<SPAN class=grey>.</SPAN>897 <IMG title=Металл alt="" src="graphic/eisen.png?1">46<SPAN class=grey>.</SPAN>754 </TD>
<TD>215219</TD>
<TD>17213/17469</TD></TR>
<TR class="nowrap row_b" style="WHITE-SPACE: nowrap">
<TD><SPAN id=label_75726><A href="/game.php?village=75726&amp;screen=overview"><SPAN id=label_text_75726>Здесь живёт  (281|331) К32</SPAN> </A></SPAN><SPAN id=edit_75726 style="DISPLAY: none"><INPUT id=edit_input_75726 value="Здесь живёт"> <INPUT onclick="editSubmitNew('label_75726', 'label_text_75726', 'edit_75726', 'edit_input_75726', '');" type=button value=OK> </SPAN></TD>
<TD>8<SPAN class=grey>.</SPAN>524</TD>
<TD align=middle><IMG title=Дерево alt="" src="graphic/holz.png?1">29<SPAN class=grey>.</SPAN>995 <IMG title=Глина alt="" src="graphic/lehm.png?1">59<SPAN class=grey>.</SPAN>756 <IMG title=Металл alt="" src="graphic/eisen.png?1">33<SPAN class=grey>.</SPAN>286 </TD>
<TD>215219</TD>

пробовал
Код:
$oTable = _IETableGetCollection($oIE, 1)
	$aTableData = _IETableWriteToArray($oTable, True)
	_ArrayDisplay($aTableData)


выдаёт
--> IE.au3 V2.4-0 Warning from function _IETableGetCollection, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IETableWriteToArray, $_IEStatus_InvalidDataType




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

Что самое интересное что на любых других сайтах этот код работает а на http://www.voyna-plemyon.ru/ нет :(
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
serg-pl-1
Попробуйте так:
Код:
$oTable = _IETableGetCollection($oIE, 0)
    $aTableData = _IETableWriteToArray($oTable, True)
    _ArrayDisplay($aTableData)
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Тоже самое :(
--> IE.au3 V2.4-0 Warning from function _IETableGetCollection, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IETableWriteToArray, $_IEStatus_InvalidDataType
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
serg-pl-1
А что это покажет:
Код:
$oTable = _IETableGetCollection ($oIE)
$iNumTables = @extended
MsgBox(0, "Table Info", "There are " & $iNumTables & " tables on the page")
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Re: Бот для \"Войны племён\"

:shok: "There are 0 tables on the page"
Как такое может быть?


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

авторизация проходит отлично а вот дальше :blink:

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

Global $oIE
_Login("http://voyna-plemyon.ru", "-=Смольный=-", "123456", "Мир 1")

$oTable = _IETableGetCollection($oIE, 0)
$aTableData = _IETableWriteToArray($oTable)
_ArrayDisplay($aTableData)

Func _Login($sURL, $sLogin, $sPass, $sWorld)
	$oIE = _IECreate($sURL,0 ,1)
	$oLogin = _IEGetObjById($oIE, "user")
	$oPass = _IEGetObjById($oIE, "password")
	_IEFormElementSetValue($oLogin, $sLogin)
	_IEFormElementSetValue($oPass, $sPass)

	$oLinks = _IELinkGetCollection($oIE)
	For $oLink In $oLinks
		$sLinkText = _IEPropertyGet($oLink, "innerText")
		If StringInStr($sLinkText, "Вход") Then
			_IEAction($oLink, "click")
		EndIf
	Next

	; Listener
	While _SelectWorld($sWorld)
		Sleep(100)
	WEnd

	_IELoadWait($oIE)

EndFunc

Func _SelectWorld($sWorld)
	$oWorlds = _IELinkGetCollection($oIE)
	For $oWorld In $oWorlds
		$sWorldText = _IEPropertyGet($oWorld, "innerText")
		If StringInStr($sWorldText, $sWorld) Then
			_IEAction($oWorld, "click")
			Return 0
		EndIf
	Next
	Return 1
EndFunc
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Что самое интересное, просматриваешь код страниц таблицы на месте :wacko:
 
Автор
serg-pl-1

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Вот что обозначает, "Если ничего не выходит, то почитай справку" :laugh:

Код:
$oFrame = _IEFrameGetObjByName($oIE, "main")
$oTable = _IETableGetCollection ($oFrame, 2)
$aTableData = _IETableWriteToArray ($oTable, True)
 
Верх