Что нового

[Сеть, интернет] Нет активности _IE

Nekromaster

Новичок
Сообщения
2
Репутация
0
Использую _IE для того,чтобы скачать пару страничек, на сайте используются фреймы(поэтому пришлось поизвращаться) но браузер ведет себя странно, не передает активность вкладке и не сохраняет файл :(
код под спойлером
Код:
#include <IE.au3>

Local $oIE = _IECreate("http://www.fipi.ru/os11/xmodules/qprint/openlogin.php")
_IEPropertySet($oIE, "top", 0)
_IEPropertySet($oIE, "left", 0)

sleep(1000)
MouseClick('left',41, 435) ; русский
sleep(500)
MouseClick('left',44, 258) ; русский

$var=0
$url = 'http://www.fipi.ru/os11/xmodules/qprint/quest_preview.php?proj_guid=AF0ED3F2557F8FFC4C06F80B6803FD26&theme_guid=aa5e3a609541e311a2f5001fc68344c9&groupno='&$var
_IENavigate($oIE, $url)
$winIE = WinWaitActive("[class:IEFrame]",$url)
ControlSend($winIE, "", "", "^s")
$sSaveAsWindow = WinWaitActive("Сохранение веб-страницы")
ControlSetText ($sSaveAsWindow, "", "Edit1", 'E:\FIPI\afipi\russian\leksika\'&$var&'.html')
ControlCommand($sSaveAsWindow, "", "ComboBox2", "SelectString", "Веб-страница, полностью (*.htm;*.html)")
ControlClick ($sSaveAsWindow, "", "Button1")
 

Garrett

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

Local $sUrl = 'http://www.fipi.ru/os11/xmodules/qprint/openlogin.php'
Local $aPages = 0
Local $sDir = @ScriptDir &'\FIPI\afipi\'
Local $sSection10_0 = 'Русский язык'
Local $sSection10_1 = 'Лексика и фразеология '

$oIE = _IECreate($sUrl)
$oOglavlenie = _IEFrameGetObjByName($oIE, 'Oglavlenie')
_IELoadWait($oOglavlenie)
$oLinks = _IELinkClickByText($oOglavlenie, $sSection10_0)
_IELoadWait($oOglavlenie, 1500)
$oLinks = _IELinkClickByText($oOglavlenie, $sSection10_1)
$oContainer = _IEFrameGetObjByName($oIE, 'container')
_IELoadWait($oContainer)
$sHTML = _IEDocReadHTML($oContainer)
$oElements = _IETagNameGetCollection($oContainer, 'span')

_GetPage($oElements, $aPages)

For $i = 0 To UBound($aPages) - 1
	
	If $aPages[$i] = $i Then
		_SavePage($sDir & $sSection10_0, $sSection10_1, $sHTML, $i)
	Else
		_IENavigate($oIE, $aPages[$i])
		_IELoadWait($oIE)
		$sHTML = _IEDocReadHTML($oIE)
		_SavePage($sDir & $sSection10_0, $sSection10_1, $sHTML, $i)
	EndIf
Next

Func _GetPage(ByRef $o_Obj, ByRef $a_Arr)

	Local $a_Pages[1000]
	Local $i_Count = 0
	
	For $o_Element In $o_Obj
		If $o_Element.classname == 'WalkSelected' Then
			$a_Pages[$i_Count] = $i_Count
			$i_Count += 1
		ElseIf $o_Element.classname == 'Walk' Then 
			$a_Pages[$i_Count] = $o_Element.firstChild.href
			$i_Count += 1
		EndIf
	Next
	
	ReDim $a_Pages[$i_Count/2]
	
	$a_Arr = $a_Pages
EndFunc ;==>_GetPage

Func _SavePage($s_Path, $s_FileName, $s_Data, $i_Page)
	
	If Not FileExists($s_Path) Then DirCreate($s_Path)
	FileWrite($s_Path &'\'& $s_FileName &'_'& $i_Page &'.html', $s_Data)
EndFunc ;==>_SavePage
 
Автор
N

Nekromaster

Новичок
Сообщения
2
Репутация
0
все прекрасно работает, разобрал ваш код,
пытался сделать также, но фреймам не получалось кликать, теперь знаю как
и смогу допилить сам :smile:
Спасибо большое за помощь, буду развиваться
 
Верх