Что нового

[Автоматизация] Автоматический переход на первую динамическую новость сайта

Ivanov

Незнайка на autoit
Сообщения
13
Репутация
0
Помогите сделать авто переход с сайта на верхнюю полную новость. Новость динамическая, то есть меняется с периодичностью, поэтому просто прописать url новости не подходит.
Пробовал сделать так:
Код:
#include <IE.au3>
#include <file.au3>


$IE = _IECreate("http://szgr.blogspot.ru/")
_IELoadWait($IE)
sleep(3000)

$elements = _IETagNameGetCollection($IE, "a")
$index = 59
For $elem In $elements
	if StringInStr($elem.attributes.getNamedItem('href' ).nodeValue, '') Then
        if $index>58 Then
		$a = _IETagNameGetCollection($elem, "a")

		For $elem1 In $a

			MsgBox(0,$index,$elem1.innertext)

			Next
			EndIf
$index += 1
		EndIf

	Next


Но что то не получается. Помогите, пожалуйста!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Ivanov,
Так, вроде находит первую ссылку.
Код:
#include <IE.au3>

$oIE = _IECreate('http://szgr.blogspot.ru')
$oDiv = _IEGetObjById($oIE, 'Blog1')
$oLink = _IETagNameGetCollection($oDiv, 'a', 1)
ConsoleWrite($oLink.href & @TAB & $oLink.innertext & @LF)
_IEAction($oLink, 'click')
_IELoadWait($oLink)
 
Автор
I

Ivanov

Незнайка на autoit
Сообщения
13
Репутация
0
Нужно чтобы после того как открыл сайт, перешел по ссылке верхней новости, т.е. перешел на страницу где новость целиком опубликована. Только надо сделать так, чтобы не прописывать в коде url, так как он будет для добавленной новости уже другой.

То есть после нажатия F5 открывается _http://szgr.blogspot.ru и затем открывается первая верхняя новость: _http://szgr.blogspot.ru/2014/02/blog-post_16.html. Но при этом если завтра автор сайта добавит другую новость, то программа должна открывать будет уже ее.


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

Этот код выполняет то действие, которое необходимо. Но url в данном случае статический. А мне необхоимо чтобы он был динамическим. Одним словом необходимо заменить _http://szgr.blogspot.ru/2014/02/blog-post_16.html на код, который бы всегда открывал ссылку первой новости.

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


$IE = _IECreate("http://szgr.blogspot.ru/")
_IELoadWait($IE)
sleep(3000)

send("{ENTER}")
_IELoadWait($IE)
Sleep(3000)
$collection = _IETagNameGetCollection($IE, 'a')
For $Elem In $collection
If StringInStr($Elem.attributes.getNamedItem('href' ).nodeValue, 'http://szgr.blogspot.ru/2014/02/blog-post_16.html') Then
$Elem.scrollIntoView()
$Elem.focus()
$Elem.click()
send("{ENTER}")
			ExitLoop

			EndIf

 Next
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Код:
#include <IE.au3>

$bData = InetRead("http://szgr.blogspot.ru/")
$bData = BinaryToString($bData)

Local $aArray = StringRegExp($bData, '(?si).*?post-title\sentry-title.*?href=(.*?)>.*?', 3)
If @error Then
	MsgBox(0, "Error", "Что-то пошло не так в StringRegExp !!!")
Else
	For $i = 0 To UBound($aArray) - 1
		$aArray[$i] = StringRegExpReplace($aArray[$i], "'", "")
		$aArray[$i] = StringRegExpReplace($aArray[$i], '"', "")
;~ 		ConsoleWrite($aArray[$i]&@CRLF)
	Next
	$IE = _IECreate($aArray[0])
		_IELoadWait($IE)
EndIf
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ivanov, Я протестировал скрипты от madmasles и от ---Zak--- - работают, открывают новость динамически.

IE 11, AutoIt3.3.10.2, Windows 7 32 bit (X86)
 
Автор
I

Ivanov

Незнайка на autoit
Сообщения
13
Репутация
0
Всем спасибо! Тему можно закрывать.
 
Верх