Что нового

Исключить из выбора определённые ссылки ссылки.

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Добрый день, программеры. Возник такой вот вопрос:
Вот скрипт, который кликает по первой попавшейся ссылке, в которой есть такая часть /view.php?ad=

Код:
$oLinks = _IELinkGetCollection($oIE)
 For $oLink In $oLinks
   If StringInStr($oLink.href,"/view.php?ad=") Then
  _IEAction($oLink, 'click')
ExitLoop
Endif
 Next


Но на сайте в коде есть несколько ссылок с такой же частью /view.php?ad= , но по которым кликать нельзя.
То есть как исключить из выбора подходящих ссылок несколько ссылок?
Например, на странице в таком порядке расположены ссылки:
/view.php?ad=4875475
/view.php?ad=4684314
/view.php?ad=819
/views.php?ad=10133
Вот нужно как-то исключить из выбора ссылки /view.php?ad=4875475 и /view.php?ad=4684314, чтобы скрипт пропустил их и кликнул сразу на /view.php?ad=819
Как можно такое реализовать?
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Код:
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
	$aResult = StringRegExp( $oLink.href, "/view\.php\?ad=(\d+)", 1 )
	If IsArray( $aResult ) Then
		Switch Int( $aResult[0] )
			Case 4875475, 4684314
				;Не подходит

			Case Else
				_IEAction($oLink, 'click')
				ExitLoop
		EndSwitch
	EndIf
Next


Есть более конкретное условие выборки для "правильной" ссылки?

Upd/ Тогда так.
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
firex, Есть конкретные НЕ правильные ссылки. А правильные всегда разные
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
SHoCK13666
Попробуйте так.
Код:
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
	
	If StringRegExp($oLink.href, "/view\.php\?ad=\d{7}", 0) Then
		ContinueLoop
	Else
		_IEAction($oLink, 'click')
		ExitLoop
	Endif
Next
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
firex, спасибо, работает.
Но есть ещё 1 вопрос. Как первую подходящую ссылку записать в переменную?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
firex [?]
Ваш вариант кликнет на все ссылки не попадающие под условие.
Мой вариант нажмёт на первую ссылку которая не попадает под шаблон и выйдет из цикла.

SHoCK13666
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.





SHoCK13666 [?]
firex, спасибо, работает.

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Garrett
Из всех ссылок на первую не обязательно попадающую под условие основной выборки ( /view.php?ad= ). Действительно, что то скудно выразился. :smile:
 
Верх