Hallo
Ich bräuchte hilfe bei einer kleinen Sache.
Ich möchte gerne in mein Script schreiben, dass er auf den Link : Hier : drücken soll.
Kein problem...
Dies habe ich mit _IENavigate gemacht.
Doch das problem ist, ich möchte das er nur diesen einen Link von 1000 aufruft und sonstige , die auf der seite sind weglässt.
So sieht es aus :
Um diesen Downloadlink zu bestätigen müssen sie Hier drücken.
Danach bitte Hier.
Es sind 2 Urls mit dem Wort Hier und das Script soll dann auf die Textstellen davor achten: z.B.
: müssen sieHier drücken :
Er soll dann nur den Url link Hier andrücken wo auch diese Textstellen davor sind
Wäre schön wenn mir jemand helfen könnte =)
Mfg
Textstelle herausfiltern + Link drücken
-
- [ offen ]
-
Texos -
25. Februar 2009 um 17:30 -
Geschlossen -
Erledigt
-
-
Es würde helfen, wenn du die Webseite verrätst.
[autoit]
Prinzipiell:
[/autoit]
#include <IE.au3>
#include <INet.au3>
#include <String.au3>
; ...
$code=_InetGetSource("http://seite.com/unterseite/bla")
$pos=StringInStr($code,"bestätigen müssen sie")
$newstring=StringTrimLeft($code,$pos)
$link1=_StringBetween($code,'href="','"')
$pos=StringInStr($code,"Danach bitte")
$newstring=StringTrimLeft($code,$pos)
$link2=_StringBetween($code,'href="','"')
_IENavigate($link1)
_IELoadWait()
_IENavigate($link1)
_IELoadWait()
Ist aber ungetestet, da ich die Seite nicht kenne. -
Dankeschön, ich setze Links ein und teste
https://autoit.de/www.German-diablo-players.de/downloads.php
Die seite ist noch nicht online gestellt weil sie im aufbau ist -
Moin,
ja, ein wenig HTML-Quelltext für die relevanten Stellen wäre nicht schlecht ...
So bringt es wohl nicht viel, aber trotzdem ...
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>$sLinkText = 'Um diesen Downloadlink zu bestätigen müssen sie Hier drücken, um ..., ansonsten müssen sie Hier drücken, um ...'
[/autoit][autoit][/autoit][autoit]$ptnLinkText = '(?:müssen sie )(.*?)(?: drücken)'
[/autoit][autoit][/autoit][autoit][/autoit]
$asLinkText = StringRegExp ($sLinkText, $ptnLinkText, 3)
; Wenn Suchtext gefunden ...
If (IsArray ($asLinkText)) Then _
_ArrayDisplay ($asLinkText)
Mit dem HTML-Quelltext könnte ich dir den Link herausfischen, aber so ...LG
Greenhorn -
Achso, was ich noch sagen wollte.
[autoit]
Ich möchte keine Url eintragen sondern:_IELinkClickByText ( $oIE, "Hier")
[/autoit]
er soll es halt herausfischen -
Ich hab noch nicht so viel mit den _IE-Funktionen gearbeitet, aber kannst du dann nicht einfach
[autoit]
[/autoit]
_IELinkClickByText ( $oIE, "Hier",1)
_IELinkClickByText ( $oIE, "Hier",2)
schreiben?Zitat$i_index Optional: If the link text occurs more than once, specify which instance you want by 0-based index
-
@L3viathan2142
Dein Beispiel geht leider nicht.
Ich probiere mal ein wenig weiter
Trotzdem danke für deine mühe =) -
[autoit]
#include <Array.au3>
[/autoit][autoit][/autoit][autoit]$sLinkText = 'Um diesen Downloadlink zu bestätigen müssen sie Hier drücken, um ..., ansonsten müssen sie Hier drücken, um ...'
[/autoit]
; Den Suchtext finden und daraus nur "Hier" zurückgeben.
$ptnLinkText = '(?:müssen sie )(Hier)(?: drücken)'
$asLinkText = StringRegExp ($sLinkText, $ptnLinkText, 3)
; Wenn Suchtext gefunden ...
If (IsArray ($asLinkText)) Then _
_ArrayDisplay ($asLinkText) -
Stimmt das hier so?
[autoit]While 1
[/autoit][autoit][/autoit][autoit]_IENavigate ($oIE, "http://german-diablo-players.de/downloads.php")
[/autoit][autoit][/autoit][autoit]
Sleep(4900)
$sLinkText = 'Um den Downloadlink zu starten, drücken sie bitte Hier'
; Den Suchtext finden und daraus nur "Hier" zurückgeben.
$ptnLinkText = '(?:Um den Downloadlink zu starten, drücken sie bitte (Hier)(?:)'
$asLinkText = StringRegExp ($sLinkText, $ptnLinkText, 3)
; Wenn Suchtext gefunden ...
If (IsArray ($asLinkText)) Then _
_ArrayDisplay ($asLinkText)Wend
[/autoit][autoit][/autoit][autoit][/autoit] -
Nicht ganz, eine Klammer vergessen ...
[autoit]$ptnLinkText = '(?:Um den Downloadlink zu starten, drücken sie bitte )(Hier)'
[/autoit]
EDIT:
Und den Rest brauchst Du auch nicht, wenn dem nichts mehr folgt ...
Und sLinkText muss natürlich der Seiteninhalt sein ...LG
Greenhorn -
Achsooo..
Dankeschöön =)) ich teste -
korrigiert^^
[autoit]
geht aber leider nichtWhile 1
[/autoit][autoit][/autoit][autoit]
Sleep(4900)$sLinkText = 'http://german-diablo-players.de/downloads.php'
[/autoit]
; Den Suchtext finden und daraus nur "Hier" zurückgeben.
$ptnLinkText = '(?:Um den Downloadlink zu starten, drücken sie bitte) (Hier)(?:)'
$asLinkText = StringRegExp ($sLinkText, $ptnLinkText, 3)
; Wenn Suchtext gefunden ...
If (IsArray ($asLinkText)) Then _
_ArrayDisplay ($asLinkText)
Wend
hab noch eine andere frage und die wäre :
bei $ptnLinkText = '(?:Um den Downloadlink zu starten, drücken sie bitte) (Hier)(?:)' ist es ja so Klammer , url , klammer
Was ist wenn es so ist? : $ptnLinkText = '(?:Um den Downloadlink zu starten, (drücken) sie bitte) (Hier)(?:)'
Also wenn noch eine Klammer darin ist es aber keine url ist?