Mengambil source code HTML dari TWebBrowser
January 17, 2009 at 1:49 pm | In Code Samples, Tutorials | Leave a CommentTags: delphi programming, HTML, IHTMLElement, outerHTML, source code, TWebBrowser
Oleh: Zamrony P. Juhara
Tips ini saya tulis untuk menjawab pertanyaan di mailing list Delphindo tentang bagaimana mendapatkan source code HTML website yang telah dimuat dalam kontrol TWebBrowser.
Setelah saya dapat konfirmasi bahwa kode yang saya posting di mailing list Delphindo bekerja, saya posting di sini agar informasinya mudah ditemukan.
Untuk mendapatkan source code elemen HTML, Anda perlu mendapatkan instance interface IHTMLElement untuk elemen yang ingin diketahui source codenya.
Untuk kasus mendapatkan kode HTML seluruh halaman website yang sudah dimuat dalam kontrol TWebBrowser, yang perlu dilakukan adalah mendapatkan elemen terluar pada dokumen HTML. Ini bisa dilakukan dengan menggunakan property body milik interface IHTMLDocument2.
Anda perlu mengkonversi properti Document milik TWebBrowser ke IHTMLDocument2 (misal dengan operator as). Properti Document berisi nil bila dokumen HTML belum termuat seluruhnya sehingga Anda perlu pastikan, properti ini tidak nil.
Setelah mendapatkan alamat instance body dokumen HTML, elemen terluar diperoleh dengan membaca properti parentElement secara berulang-ulang sampai parentElement berisi nil, yang berarti elemen saat ini adalah elemen terluar.
Source codenya diperoleh dengan membaca properti outerHTML.
Di bawah ini adalah contoh implementasinya.
unit u_html_util;
interface
uses mshtml;
function html_get_source(browser:TWebBrowser):string;
implementation
function html_get_source(browser:TWebBrowser):string;
var elem:IHTMLElement;
begin
//cek apakah dokumen sudah lengkap
if browser.Document <> nil then
begin
//ambil element body
elem:=(browser.Document as IHTMLDocument2).body;
while elem.ParentElement<>nil do
begin
elem:=elem.parentElement;
end;
result:=elem.outerHTML;
end;
end;
end.
Untuk menggunakannya mudah. Contohnya seperti berikut ini (diasumsikan Memo1 dan WebBrwoser1 masing-masing berisi instance TMemo dan TWebBrowser yang valid.
Memo1.Text:=html_get_source(WebBrowser1)
Ok, itu saja tipsnya kali ini.
No Comments Yet »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.