Автор Тема: Использование _IELinkClickByText на ссылках с пробелами и спец.символами  (Прочитано 3757 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн unauthorized [?]

  • Новичок
  • *
  • Сообщений: 10
  • Репутация: 0
    • Награды
Есть такая ссылка:
<a rel="nofollow" href="/cc120604-p3-oborudovanie-i-komplektuyuschie-verhnego-stroeniya-puti.html" class=" b-catalog-pager__link">Следующая&nbsp;→</a>Знаю что &nbsp; - это пробел, но как указать пробел и спец.символ(→) в функции?
Такая функция не работает:
_IELinkClickByText($oIE,"Следующая "&Chr(26))

Русское сообщество AutoIt


Оффлайн Asshaker [?]

  • Новичок
  • *
  • Сообщений: 150
  • Репутация: 17
  • Пол: Мужской
    • Награды
Код: AutoIt [Выделить]
_IELinkClickByText($oIE,"Следующая")
 

Так пробовал? :)
Вот еще способ:
Код: AutoIt [Выделить]
_LinkClick('/cc120604-p3-oborudovanie-i-komplektuyuschie-verhnego-stroeniya-puti.html')
Func _LinkClick($FocusLink) ;Клик по кнопкам с уникальными ссылками   
    $oLinks=_IELinkGetCollection($oIE)
    For $oLink in $oLinks
        if StringInStr($oLink.href,$FocusLink) And  Not  StringInStr($oLink.href, '#') Then
            _IEAction($oLink,'click')
            _IELoadWait($oIE)
            ExitLoop
        EndIf
    Next
EndFunc


Оффлайн unauthorized [?]

  • Новичок
  • *
  • Сообщений: 10

  • Автор темы
  • Репутация: 0
    • Награды
Этот код:
_IELinkClickByText($oIE,"Следующая")Не робит для данной ссылки.
Второй вариант использовать не получится, т.к. мой бот должен каждый раз нажимать эту "Следующую", href которой каждый раз разный (постраничная навигация, ссылка "Следующая" указывает на следующую страницу)

Русское сообщество AutoIt


Оффлайн Zaramot [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1160
  • Репутация: 656
  • Пол: Мужской
  • I ♥ AutoIt
    • Награды
  • Версия AutoIt: 3.3.8.1
Попробуй так:
Код: AutoIt [Выделить]
#include <IE.au3>

$Url = '' ;Ссылка, где находится "Следующая"
$oIE = _IECreate($Url)
$HTML = _IEBodyReadHTML($oIE)
$LinkText = StringRegExp($HTML, '>Следующая(.*?)<', 3)
_IELinkClickByText($oIE, 'Следующая' & $LinkText)


Оффлайн Asshaker [?]

  • Новичок
  • *
  • Сообщений: 150
  • Репутация: 17
  • Пол: Мужской
    • Награды
$FocusLink, мб частью ссылки.
Ну если почитаешь хепл по командам из функции, то думаю разберешься с сылками :)


Русское сообщество AutoIt


Оффлайн unauthorized [?]

  • Новичок
  • *
  • Сообщений: 10

  • Автор темы
  • Репутация: 0
    • Награды
Всем спасибо, нашел решение:
Код: AutoIt [Выделить]
$oLinks = _IELinkGetCollection ($oIE)
For $oLink In $oLinks
 if(StringInStr($oLink.innertext,"Следующая")) Then
  _IENavigate($oIE,$oLink.href)
 EndIf
Next

Помогла справка по линкам: ссылка:http://msdn.microsoft.com/en-us/library/aa752279%28VS.85%29.aspx [nonactive]
« Последнее редактирование: Апрель 27, 2012, 20:23:34 от unauthorized »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 963
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
unauthorized  [?]
Цитировать
"Следующая" указывает на следующую страницу
Количество страниц определяется делением общего количества выводимой информации на количество информации выводимой на страницу.
Для перехода на другую страницу, в GET запросе передаётся параметр приращение. Подставляя его в ссылку, вы сможете перемещаться по страницам. Вам, как правило, нужно один раз считать общее количество страниц, и далее вычислять приращение.

Скорблю и помню.




Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2863 Просмотров
Последний ответ Июнь 23, 2010, 16:26:09
от Kaster
1 Ответов
2282 Просмотров
Последний ответ Декабрь 29, 2011, 06:52:21
от astati
6 Ответов
5922 Просмотров
Последний ответ Декабрь 04, 2012, 10:21:17
от Gzzk
7 Ответов
5063 Просмотров
Последний ответ Март 30, 2013, 21:54:25
от madmasles
4 Ответов
2923 Просмотров
Последний ответ Март 31, 2015, 12:36:04
от sem191162
7 Ответов
1541 Просмотров
Последний ответ Сентябрь 04, 2016, 14:02:08
от louie1743shkirondo
16 Ответов
2154 Просмотров
Последний ответ Май 03, 2017, 08:55:27
от VadimKHL
6 Ответов
1019 Просмотров
Последний ответ Октябрь 23, 2017, 01:41:37
от Garrett
8 Ответов
1819 Просмотров
Последний ответ Ноябрь 12, 2017, 16:34:00
от Ruzarj
2 Ответов
1692 Просмотров
Последний ответ Август 29, 2018, 01:21:29
от NONer