Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

iFrame +src captchy (IE.au3)


xelu

Rekomendowane odpowiedzi

Opublikowano

Hejka,

pracuje na bibliotece IE.au3, jednak kod podejrzalem w FireBug'u.

Potrzebuje pobrać src captch'y, która znajduje się w iFrame, jak to zrobić?

<div id="captcha">
<iframe width="182" scrolling="no" height="28" frameborder="0" marginwidth="0" marginheight="0" src="/captcha/index.php?id=8480df5d0cb847176b4a515fb07eb25a">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body style="margin:0px; padding:0px; text-align:left;">
<span>
<img id="captchaImg" width="125" height="28" style="border:none;" src="http://www.example.com/captcha/image.jpg?type=image&id=8480df5d0cb847176b4a515fb07eb25a&6d4f2af71b7391757befbf4d315be7b1">
<a href="http://www.example.com/captcha/index.php?id=8480df5d0cb847176b4a515fb07eb25a&recreate&nocache=6d4f2af71b7391757befbf4d315be7b1">
</span>
</body>
</html>
</iframe>

Albo jakim innym sposobem pobrać obrazek captch'y na dysk (dla skryptu działającego w tle) ?

Może on jest już pobierany gdzieś, kiedy ładuje się strona? Do plików tymczasowych?

Zależy mi na pobraniu tej captchy.

 

Obrazek wyglada tak:

capth.jpg

 

Na FF.au3 nie było by problemu bo zawsze można pobrać to w ten sposób:

InetGet(_FFXpath(sciezka), "plik.jpg"))

 

Da się zastosować ten trik na IE.au3?

Opublikowano
#include <String.au3>
$html = _IEBodyReadHTML($oIE)
$src = _StringBeetwen($html, 'src="', '"')

Opublikowano

Nie mam pojęcia jak.

Tego kodu html nie ma w kodzie głównym (ppm, pokaż źródło), nawet nie da się go wyodrebnic za pomocą _IEDocReadHTML()

Ten owyższy fragment wychwyciłem dopiero FireBugiem albo DebugBarem w IE.

 

Aha, może to pomoże. Na stronie działa skrypt javy, który powoduje załadowanie się tego iframe'a.

Jak wyodrębnić kod z wewnątrz iFrame'a?

Opublikowano

normalnie , pobierz adres i wczytaj kod ramki która przecież tez jest stroną html

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

#include <String.au3>
$html = _IEBodyReadHTML($oIE)
$src = _StringBeetwen($html, 'src="', '"')

#include <String.au3>
#include <IE.au3>
$html1 = _IEBodyReadHTML($oIE)
$src1 = _StringBeetwen($html1, 'src="', '"')
_IENavigate($oIE, $src1, True)
$html2 = _IEBodyReadHTML($oIE)
$src2 = _StringBeetwen($html2, 'src="', '"')

Opublikowano

#include <String.au3>
#include <IE.au3>
$html1 = _IEBodyReadHTML($oIE)
$src1 = _StringBeetwen($html1, 'src="', '"')
_IENavigate($oIE, $src1, True)
$html2 = _IEBodyReadHTML($oIE)
$src2 = _StringBeetwen($html2, 'src="', '"')

Do zmiennej $html1 ładnie wczytuje wartość "src", ale na tym koniec.

_IENavigate nie przenosi do tej ramki, a co za tym idzie - wysypuje się reszta kodu.

 

W IE, w DebugBarze zaznaczyłem ten iframe i kliknąłem zieloną strzałkę (która otwiera ten src w nowym oknie IE).

Tak cudaśnie się dzieje, że z:

http://www.example.c...52149a40747b302

przekierowuje mnie od razu do:

http://www.example.com

 

Dodatkowo powiem, że:

1) Klikając na captche w IE, PPM > zapisz obraz jako element docelowy, wyskakuje okienko zapisu jako plik *.png.

2) Klikajac na captche w FF, PPM > Pokaż obrazek, otwiera się nowa karta z wartością 'src' w pasku adresu czyli:

http://www.example.com/captcha/image.jpg?type=image&id=5db4d7163ce9cef1a2cf3bc1f86ad35b&199161b10b50f6592c4abac576d5a742,

a na środku obrazek.

Opublikowano

Spróbuj tak:

 

$ilosc = _IEImgGetCollection($oIE)
Local $iNumImg = @extended

For $x = 1 To $iNumImg Step +1
Local $oImg = _IEImgGetCollection($oIE, $x)
MsgBox(0, "Link obrazka nr."&$x, $oImg.src)
Next

Będą Ci się pojawiać linki do wszystkich obrazków na stronie z odpowiednimi numerami w tytule komunikatu.

Jeśli pojawi Ci się link do Twojej Captchy wtedy spisujesz sobie ten numer linka w komunikacie i piszesz:

 

Local $oImg = _IEImgGetCollection($oIE, 4) ; 4 to numer linka, wiec tu sobie zmieniasz
MsgBox(0, "Link CAPTCHY", $oImg.src)

 

Jeśli nie zadziała, to trzeba bardziej pokombinować z _StringBetween :)

Opublikowano

Spróbuj tak:

 

$ilosc = _IEImgGetCollection($oIE)
Local $iNumImg = @extended

For $x = 1 To $iNumImg Step +1
Local $oImg = _IEImgGetCollection($oIE, $x)
MsgBox(0, "Link obrazka nr."&$x, $oImg.src)
Next

Będą Ci się pojawiać linki do wszystkich obrazków na stronie z odpowiednimi numerami w tytule komunikatu.

Jeśli pojawi Ci się link do Twojej Captchy wtedy spisujesz sobie ten numer linka w komunikacie i piszesz:

 

Local $oImg = _IEImgGetCollection($oIE, 4) ; 4 to numer linka, wiec tu sobie zmieniasz
MsgBox(0, "Link CAPTCHY", $oImg.src)

 

Jeśli nie zadziała, to trzeba bardziej pokombinować z _StringBetween :)

Nic z tego, bo _IEImgGetCollection() leci po kodzie strony który mogę inaczej pobrać _IEBodyReadHTML() albo _IEDocReadHTML(),

a tej Captchy tam nie ma.

Ta kapcza jest wywoływana przez skrypt JS i umieszcza obrazek w <iframe/>, który ma jedynie swój src.

Tak jak ktoś już wspomniał, aby pobrać obrazek trzeba otworzyć tą ramkę a z niej zczytać kod html.

Lecz kiedy kopiuje src ramki i daje w pasku adres z automatu lecę do strony głównej portalu: "http://example.com" ... ;|

Ciekawe jest to, że jak zaloguje sie na konto przez FF, klikne na Captcha PPM i z menu wybiore: Ramka > Pokaż samą ramkę, to otwiera mi nową kartę i mam tam obrazeczek i strzałki do reload'u obrazka, czyli to o co dokładnie mi chodzi. Jak mam otwartą ramkę w tej nowej karcie, ona ma adres URL dokładnie taki jaki był na tamtej stronie w znaczniku "src". Kiedy kopiuje go i próbuje wkleić z nową kartę czy w FF czy w IE, wywala mnie do strony głównej.

Nie wiem jakim cudem Firefox otwiera sobie tą ramkę w nowej karcie.

 

Skrypt captcha wyglada tak:

<!-- captcha js -->
<script type="text/javascript">
function loadpccaptcha(where)
{
 var cid='';
 var possible = "0123456789abcdef";
for( var i=0; i < 32; i++ ) cid+=possible.charAt(Math.floor(Math.random()*possible.length));
 var chtml='';
 chtml+='<iframe src="/captcha/index.php?id='+cid+'" width="182" height="28" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"> </iframe>';
 chtml+='<div class="withdrawcaptcha">Enter the Withdraw-code shown above</div>';
 chtml+='<input type="text" maxlength="10" name="captcha" class="captchainputbox" style="width:182px;letter-spacing:2px;font-weight:bold;" autocomplete="off" />';
 chtml+='<br /><input type="hidden" name="captchaid" value="'+cid+'" /><br />';
 $(document).ready(function(){$(where).html(chtml);});
}
</script>
<!-- /captcha js -->

 

Jego wywołanie w dalszym kodzie strony:

<div id="captchaholder"></div>
<script type="text/javascript"> loadpccaptcha("#captchaholder"); </script>
<!-- captcha to -->

 

A tak wygląda kod z _IEDocReadHTML($oIE):

<!-- captch from -->
<div id="captchaholder"><iframe height="28" marginHeight="0" src="/captcha/index.php?id=bc08cc5744a3ba6a18df89061f565000" frameBorder="0" width="182" marginWidth="0" scrolling="no"> </iframe><div class="withdrawcaptcha">Enter the Withdraw-code shown above</div><input style="width: 182px; letter-spacing: 2px; font-weight: bold;" class="captchainputbox" name="captcha" maxLength="10" type="text" autocomplete="off"><br><input name="captchaid" value="bc08cc5744a3ba6a18df89061f565000" type="hidden"><br></div>
<script type="text/javascript"> loadpccaptcha("#captchaholder"); </script>
<!-- captcha to -->

Opublikowano

adres obrazka to HTTP://ADRES.WWW.STRONY.COM/captcha/index.php?id=bc08cc5744a3ba6a18df89061f565000 ale jak widac potem obrazek jest wywoływany za pomoca skryptu

 

nic nie da jak piszesz po kawalku , adres potrzebny i kod strony

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...