İnternet Sayfasını kaydetme (Çözüldü)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
İnternet Sayfasını kaydetme (Çözüldü)
Malumunuz İnternet Explorer ile açtığımız sayfayı Dosya>Farklı Kaydet diyerek kaydedebiliyoruz.
Bu kaydettiğim sayfayı daha sonra offline olarak web browser ile gösteriyorum.
İnternet sayfasını kaydetme işini Delphi 7 ile nasıl yapabilirim.Web Browserda denedim ama olmadı.Kaydedemiyorum.
İ.E. nasıl komut gönderipde çalıştırabiliriz(Farklı kaydet yapabiliriz).
Sayfayı kaydetmeden önce O internet sayfasının internete yükenme tarihini daha doğrusu son değişiklik tarihini nasıl anlayabilirim.
Teşekkürler...
Bu kaydettiğim sayfayı daha sonra offline olarak web browser ile gösteriyorum.
İnternet sayfasını kaydetme işini Delphi 7 ile nasıl yapabilirim.Web Browserda denedim ama olmadı.Kaydedemiyorum.
İ.E. nasıl komut gönderipde çalıştırabiliriz(Farklı kaydet yapabiliriz).
Sayfayı kaydetmeden önce O internet sayfasının internete yükenme tarihini daha doğrusu son değişiklik tarihini nasıl anlayabilirim.
Teşekkürler...
En son kahraman1285 tarafından 28 Kas 2006 09:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
http://delphi.about.com/od/internetintr ... 62904a.htm
sayfasında gayet güzel açıklanmış.sadece internet sayfasının webbrowsera yüklenmesi için biraz beklemek gerekiyor ben bunu sleep komutuyla yaptım.
kulanımında
sayfasında gayet güzel açıklanmış.sadece internet sayfasının webbrowsera yüklenmesi için biraz beklemek gerekiyor ben bunu sleep komutuyla yaptım.
Kod: Tümünü seç
procedure WB_SaveAs_HTML
(WB:TWebBrowser; const FileName : string);
var
PersistStream: IPersistStreamInit;
Stream: IStream;
FileStream: TFileStream;
begin
if not Assigned(WB.Document) then
begin
ShowMessage('Document not loaded!');
Exit;
end;
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference)
as IStream;
if Failed(PersistStream.Save(Stream, True)) then
ShowMessage('SaveAs HTML fail!');
finally
FileStream.Free;
end;
end; (* WB_SaveAs_HTML *)
Kod: Tümünü seç
WebBrowser1.Navigate('http://www.mynet.com');
sleep(5500);
WB_SaveAs_HTML(WebBrowser1,'c:\WebBrowser1.html');
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
WebBrowser'in readystate özelliğinin True olup olmadığını takibe alırsan gereğinden fazla sleep yapma ihtimalin ortadan kalkar.@kahraman1285 yazdı:sadece internet sayfasının webbrowsera yüklenmesi için biraz beklemek gerekiyor ben bunu sleep komutuyla yaptım.
Ref : viewtopic.php?t=6612#36828
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
@kahraman1285
Verdiğim örnekteki odaklanılması gereken konu, navigasyonun bittiği anı yakalamak için yapılacak döngü idi. HTML kaynağının hard diskte olması refere edilen başlık için bir örnektir.
- Bir web sayfasındaki HTML text'i TWebBrowser ile almak için yazdığın örneği biraz modifiye ettim, aşağıdaki kodu kullanabilirsin.
- İki türlü fonksiyonel yaptım beğendiğin şekilde kullan.
1.
şeklinde TWebBrowser, web adres ve dosya adı her üçünü de verirsen, verdiklerini kullanarak browse işlemini verdiğin webbrowser ile yaparak html kaynağını dosya adıyla kaydeder.
2. dersen, yani 1. ile aynı fakat URL belirtmezsen, eğer verdiğin WebBrowser daha önce navigate edilmiş sayfa varsa onu verdiğin dosya ismiyle saklar.
Verdiğim örnekteki odaklanılması gereken konu, navigasyonun bittiği anı yakalamak için yapılacak döngü idi. HTML kaynağının hard diskte olması refere edilen başlık için bir örnektir.
- Bir web sayfasındaki HTML text'i TWebBrowser ile almak için yazdığın örneği biraz modifiye ettim, aşağıdaki kodu kullanabilirsin.
- İki türlü fonksiyonel yaptım beğendiğin şekilde kullan.
1.
Kod: Tümünü seç
WB_SaveAs_HTML( WebBrowser1, 'http://www.google.com.tr', 'c:\deneme.htm');
şeklinde TWebBrowser, web adres ve dosya adı her üçünü de verirsen, verdiklerini kullanarak browse işlemini verdiğin webbrowser ile yaparak html kaynağını dosya adıyla kaydeder.
2.
Kod: Tümünü seç
WB_SaveAs_HTML( WebBrowser1, '', 'c:\deneme.htm');
Kod: Tümünü seç
procedure WB_SaveAs_HTML(WB:TWebBrowser; const URL, FileName : string);
var
Liste : TStringList;
begin
If URL <> '' then
begin // URL Navigate edilecek
WB.Navigate(Url);
While WB.ReadyState <> READYSTATE_COMPLETE
do Application.ProcessMessages; // sayfa bitmesini beklemedeyiz..
end else
begin // Navigate edilmiş bir URL varsa Text olarak kaydedilecek.
if not Assigned(WB.Document) then
begin
ShowMessage('Document not loaded!');
Exit;
end;
end;
Liste := TSTringList.Create;
Liste.Text := WB.OleObject.Document.Body.InnerHTML;
Liste.SaveToFile( FileName );
Liste.Free;
end;
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
Hocam bu kadar hızlı cevap alabileceğimi zannetmiyordum.
Teşekkür ederim...
Son olarak şu konudada fikrinizi almak istiyorum.Ben sayfayı harddiske kaydettikten sonra tekrar webbrowserda navigate yaptığımda .swf ve .png uzantılı resim ve flashlar olmuyor bunları göstermek için bu nesneleri sayfayı kaydetmeden önce ayrıca download edip kaydetmek mi gerek?
Teşekkür ederim...
Son olarak şu konudada fikrinizi almak istiyorum.Ben sayfayı harddiske kaydettikten sonra tekrar webbrowserda navigate yaptığımda .swf ve .png uzantılı resim ve flashlar olmuyor bunları göstermek için bu nesneleri sayfayı kaydetmeden önce ayrıca download edip kaydetmek mi gerek?