Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Ловим ссылку привязанную к кнопке, и копируем ее в поле адреса браузера (?) (http://forum.oszone.net/showthread.php?t=152272)

zbruy 04-10-2009 12:15 1234152

Ловим ссылку привязанную к кнопке, и копируем ее в поле адреса браузера (?)
 
Вот такая задачка. Есть некий сайт, на котором появляется несколько гипер ссылок, нужно из первой вырвать адрес и вставить ее в панель адреса браузера. Задача слегка усложняется тем, что сылка в кнопке не полная, есть статичный кусок, который для всех кнопок одинаков. Сам как не пыжился сделать пока не смог, использование функций IE пока для меня большая загадка, при том, что я не в ладах с английским, а русской справки по IE нету=( Код выглядит так (приводить полностью не буду, т .к. код большой):
должна получится конструкция которая будет кидать в поле ввода адреса статичную часть адреса + часть ссылки 1

ЗЫ. сорри, что не даю настоящих ссылкок, там информация специфическая, поэтому и не даю сам сайт.

Заранее спасибо за любую помощь, кроме "кури все по IE"=)

Sp01LeR 04-10-2009 13:20 1234201

Лично я в примере ни одной кнопки (может картинки с ссылкой?) не увидел. Так что, если автор хочет, что бы ему помогли, то пусть даст более наглядный пример.

zbruy 04-10-2009 13:24 1234203

Виноват, не верно изложил, не кнопка, а текст-ссылка, гиперссылка. :blush2:
поправил, надеюсь так понятнее станет

Sp01LeR 04-10-2009 17:08 1234333

Сразу скажу, что я считаю использование UDF <IE.au3> недостаточно гибким вариантом, поэтому вот примерная реализация с помощью регулярки, для готового рабочего варианта нужен исходник хтмл-кода - без него никак...

Код:

#include <INet.au3>
#include <Array.au3>

Dim $prot = "http://"
Dim $domen = "сайт.ру"
Dim $delim = "/"
Dim $s_get = "index.html"
Dim $browser = "iexplore.exe"

$get_data = _INetGetSource($domen&$delim&$s_get)
If @Error = 1 Then
        MsgBox(16, "Error", "Не могу загрузить страницу!")
        Exit
Else
        MsgBox(4096, "Ok!", "Загружено: "&StringLen($get_data)&" байт")
EndIf
$qts = "['""]"
$prs_data = "<a.*href="&$qts&"(.*)"&$qts&".*>(.[^><]*ссылки\s1.[^><]*)</a><br/><br/>"
$prs_arr = StringRegExp($get_data, $prs_data, 1)

If UBound($prs_arr) > 0 Then
        _ArrayDisplay( $prs_arr, "Результаты поиска:" )
        ;далее запускаем браузер $browser
        ;ставим фокус на панель адреса (у большинства браузеров клавишей {F6})
        ;и высылаем в панель адреса строку:
        ;Send($prot&$domen&$delim&$prs_arr[0]{ENTER})
Else
        MsgBox(16, "Reg Exp Error", "Ошибка поиска по шаблону. Код ошибки="&@error)
EndIf


zbruy 04-10-2009 23:18 1234554

Sp01LeR, Спасибо. По крайней мере есть неплохая основа, с которой можно работать, буду пробовать, хотя не уверен что это мне поможет. У меня сначала на сайте нужно залогинится, а потом закидывать с каждой новой страницы первую ссылку в панель адреса и так до бесконечности.


Время: 12:30.

Время: 12:30.
© OSzone.net 2001-