Acho que entendi o que o avsouza está querendo fazer. Ele não quer simplesmente o html da página. Ele quer o html do frame que foi carregado pela página principal. Para fazer isso você vai precisar primeiro pegar o html da página principal e procurar, dentro desse código, a URL do frame que você quer. Por exemplo, o site www.caixa.gov.br, lá no código fonte, lá pela linha 900, tem um iframe que aponta para http://www1.caixa.gov.br/imprensa/index.asp. Se você quiser pegar o código html desse iframe, se fosse um iframe com url dinâmica, seria preciso primeiro buscar, no html da página principal, alguma coisa que só esse iframe possui. Por exemplo, localize a string title=“Todas as notícias”, então, some 32 à posição dessa string dentro do html todo, e terá a posição inicial do link, depois do href=". A partir dessa posição das aspas iniciais, localize as aspas finais e guarde numa segunda variavel. Agora, pegue a string compreendida entre a posição inicial e final e terá o link, mesmo que este mude a cada visita à página.
String html;
int posIni = html.indexOf("title=\"Todas as notícias\"");
posIni += 32; // essa posição está no início do http://...
int posFim = html.indexOf("\""); //para achar as aspas finais
String myUrl;
myUrl.concat(html.substring(posIni, posFim)); //pega a substring que contém a Url desejada
Isso tá mais pra POS (programação orientada à strings), mas é a única saída quando um site não oferece uma api para se coletar programaticamante os dados que se deseja.
Não sei se minha sintaxe tá certa, ainda estou migrando do .Net