А всё таки как проверить в webbrowser загрузилась ли полностью страница ? Если так: Code: procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject); var str:string; begin str:=Webbrowser1.OleObject.Document.body.innerHTML; end; То получаю критическую ошибку на строчке str:=Webbrowser1.OleObject.Document.body.innerHTML; А это означает что всё же страница не загрузилась до конца (
Собственно всё равно я не получаю корректный результат ссылок чтобы парсить ! Ссылки только на ютуб и гугл больше ничего ! Возможно я установил Runtime зря, но даже и при https всё равно нет ! Code: procedure TForm1.Button10Click(Sender: TObject); var str:string; i:integer; http:thttpsend; html:tstringlist; begin http:=Thttpsend.Create; html:=tstringlist.Create; http.HTTPMethod('GET','http://www.google.ru/#newwindow=1&q=cs 1.6); html.LoadFromStream(http.document); Memo6.Lines.AddStrings(html); end;
Как в Synapse thttpsend получить текущий url страницы ? Code: Memo6.Lines.Add(http.targethost); отображает кажется не полный url Вывод только один вообщем Code: Memo6.Lines.LoadFromStream(http.Document); Не правильное получение html кода страницы !
Выяснилось что Delphi s:String не хватает символы: &, # ! Code: procedure TForm1.Button1Click(Sender: TObject); var str:string; begin str:=('&можешь не пытаться&'); Showmessage(str); Результат: можешь не пытаться
Полагаю, единичный символ & в диалоге задаёт подчёркивание для горячей клавиши, при удержании кнопки Alt.
А стоит ли у вас Alpha Skins у кого правильно выводит ? подозреваю что правильное отображение & может крыться в нём ( очень не хочется сносить (((. Кто может киньте пжл на форму sskinmanager выберите скин и попробуйте выводит ли теперь &
Вот так работает короче ) Code: procedure TForm1.Button1Click(Sender: TObject); var str:string; begin str:=('&&можешь не пытаться&&'); Showmessage(str); Две &&=одной ))))))
Как работать со списком прокси ? Code: var proxys:tstringlist; curproxy:integer; begin proxys.LoadFromFile(opendialog1.FileName); ip:=Copy(proxys[CurProxy],1,Pos(':', proxys[CurProxy])-1); port:=Copy(proxys[CurProxy], Pos(':', proxys[CurProxy])+1, Length(proxys[CurProxy])); Showmessage(ip); Результат: Первый верхний ip из выбранного листа и всё ( тоже самое и с портом (
Во первых у Вас вроде ошибка (не правильно указываете длину) в: нужно примерно так: port:=Copy(proxys[CurProxy], Pos(':', proxys[CurProxy])+1, Length(proxys[CurProxy]-)-(Pos(':', proxys[CurProxy]))); Покажите как Вы вызываете эту процедуру или функцию. Проще говоря Вы пытаетесь из строки 30 символов скопировать 5 символов длинной в 30 символов.
У него тоже допустимо, так как до конца нужно, а длина всей строки всегда больше длины нужного участка. А можно не париться и писать в таких случаях MaxINT. Давайте уже на учебник триблкиллу скинемся)
Я вот так вызываю процедуру: Code: HTTP:=THTTPSend.Create; ip:=Copy(proxys[CurProxy],1,Pos(':', proxys[CurProxy])-1); port:=Copy(proxys[CurProxy], Pos(':', proxys[CurProxy])+1, Length(proxys[CurProxy])); http.ProxyHost:=ip; http.ProxyPort:=port; with THTTPSend.Create do begin if HTTPMethod('GET','http://www.ya.ru') then begin А если не открыл я пока не понимаю как перейти к следующему прокси из списка-(((( наверное лучше даже по таймеру будет менять
после выбора очередного прокси допишите: CurProxy:= CurProxy + 1; if CurProxy >= proxys.count -1 then CurProxy:=0; так они будут выбираться по кругу. только CurProxy должна быть глобальной и равна 0.