Autoit ile yazılmış Hide My Ass sitesinden proxy çekmeye yarayan programın kaynak kodları aşağıdadır hocam işinize baya bi yarayacaktır...
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>
Global $UI_MAIN = GUICreate("Hide My Ass Proxy Scanner", 365, 250, 192, 124)
Global $URL = GUICtrlCreateInput("http://hidemyass.com/proxy-list/%s", 64, 8, 289, 21)
GUICtrlCreateLabel("The URL:", 8, 8, 55, 17)
Global $Console = GUICtrlCreateEdit("", 8, 40, 345, 153)
GUICtrlSetData(-1, "")
Global $Start = GUICtrlCreateButton("Start", 8, 200, 289, 21)
Global $Pages = GUICtrlCreateInput("5", 304, 200, 49, 21)
GUICtrlCreateUpdown(-1)
GUICtrlSetLimit(-1, 40, 1)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND")
Global $Indo = 0
While 1
Sleep(100)
WEnd
; #FUNCTION# ====================================================================================================================
; Name ..........: _UnHideMyAss
; Description ...: Recovers proxies from hidemyass.com
; Syntax ........: _UnHideMyAss($HTML)
; Parameters ....: $HTML - HTML web source.
; Return values .: A string white space delimetered list
; Author ........: ScriptKitty
; Modified ......:
; Remarks .......: will most liekly stop working after a month from this post
; Example .......: No
; ===============================================================================================================================
Func _UnHideMyAss($html)
Local $ProxyList; = $HTML
Local $Fields = StringRegExp(StringStripWS($html, 8), "(?i)<tr[^>]*>((?s).+?)</tr>", 3); seperate the groups of entries
If Not @error Then
Local $indexCount
Local $aCSS
Local $sTemp
For $o = 0 To UBound($Fields) - 1
$html = $Fields[$o]
$aCSS = StringRegExp($html, "(?i)\.([^{]+){display:([^}]+)}", 3); get css values
If @error Then ContinueLoop
$sTemp = $aCSS
ReDim $aCSS[9999][2]
$indexCount = 0
For $I = 0 To (UBound($sTemp) - 1) Step 2; load styles to array
$aCSS[$indexCount][0] = $sTemp[$I]
$aCSS[$indexCount][1] = $sTemp[$I + 1]
$indexCount += 1
Next
ReDim $aCSS[$indexCount][2]
$html = StringRegExpReplace($html, '(?i)<[^>]*style=[^>]*display:[^>]*none[^>]*>[^<]*</[^>]*>', ""); remove the ones that will not show up
For $I = 0 To UBound($aCSS) - 1
If StringInStr($aCSS[$I][1], "none", 2) Then _; remove the CSS styles none displayed entities or whatever
$html = StringRegExpReplace($html, '(?i)<[^>]*(?i:class|name|id)=[''"]' & $aCSS[$I][0] & '[''"]>[^<]*</[^>]*>', "")
Next
$html = StringRegExpReplace($html, '(?i)<[^>]*>([\s\S]+)</[^>]*>', "$1"); remove dummy tags
$html = StringRegExpReplace(StringStripWS($html, 8), '(?i)<td>([^<]+)</td>', ":$1"); set port
$html = StringRegExpReplace($html, '<[^<]*>', ""); remove everything else now
$ProxyList &= $html & @CRLF
Next
EndIf
$html = StringRegExp($ProxyList, "(?:\d{1,3}\.){3}\d{1,3}:\d{2,5}", 3)
If Not @error Then
$ProxyList = ''
Local $Count = UBound($html)
For $I = 0 To $Count - 1
$ProxyList &= $html[$I] & @CRLF
Next
EndIf
Return SetError(0, 0, $ProxyList)
EndFunc ;==>_UnHideMyAss
#region - WM_MESSAGES -
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hwnd, $iMsg, $ilParam
Local $LowWord = BitAND($iwParam, 0xFFFF)
Switch $hWnd
Case $UI_MAIN
Switch $LowWord
Case $Start
If Not $Indo Then
$Indo = 1
GUICtrlSetData($Start, "Stop")
_Start()
Else
$Indo = 0
GUICtrlSetData($Start, "Start")
EndIf
EndSwitch
EndSwitch
Return 'GUI_RUNDEFMSG'
EndFunc ;==>WM_COMMAND
Func WM_SYSCOMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam, $ilParam
Switch $hWnd
Case $UI_MAIN
Switch BitAND($iwParam, 0xFFF0)
Case $SC_CLOSE
Exit
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SYSCOMMAND
#endregion - WM_MESSAGES -
#region - main -
Func _Start()
Local $Page, $Return, $Proxies
For $I = 1 To GUICtrlRead($Pages)
If (GUICtrlRead($Pages) < $I) Or Not $Indo Then ExitLoop
$Page = StringFormat(GUICtrlRead($URL), $I)
;ConsoleWrite($Page & @CRLF)
$Return = BinaryToString(InetRead($Page))
$Proxies = _UnHideMyAss($Return)
If @error Then Exit MsgBox(0, @extended, @error)
If Not @error Then _ConsoleWrite(GUICtrlRead($Console) & "########## PAGE " &$I& " ###########" & @CRLF & $Proxies & @CRLF)
Sleep(3000)
Next
$Indo = 0
GUICtrlSetData($Start, "Start")
EndFunc
Func _ConsoleWrite($IN)
GUICtrlSetData($Console, $IN)
EndFunc
#endregion - main -