Quando preciso pegar o texto html de algum portal, faço o seguinte:
Código: Selecionar todos
Function SagresGetSituacaoMes(cEntidade, cAno, cMes)
Local aRet, mHtml, aTabela, mTabelas, aTr, aTd, i, x, mUrl, mValor, mString
mUrl := "https://www.tcepi.tc.br/fiscalizado/situacao-das-prestacoes-de-contas/?type=municipais&ug=" +;
cEntidade + "&ano=" + cAno + "&mes=" + cMes
mHtml := SendPostToUrl( mUrl, '', '', '' )
aTabela := MultipleNodeToArray( mHtml, 'table' )
mTabelas := aTabela[1]
aTr := MultipleNodeToArray( mTabelas, 'tr' )
... continua seu processamento
...
Return //
//*****************************************************************
//https://forums.fivetechsupport.com/viewtopic.php?f=3&t=37971
//SendPostToUrl( "https://xxxx.xxxx.com/aaa/bbbb", cJson, cContentTpe, cAuthorization )
//oOle:ResponseBody ou oOle:responseText - String, Retorna o HTML da pábina consultada
//oOle:status - Numeric, Retorna o Status atual. 200 = OK
//oOle:statusText - String, Retorna o texto de Status
//Enviando com Params: oOle:send("var1=" + str1 + "&var2=" + str2 + "&var3=" + str3)
//*****************************************************************
Function SendPostToUrl( cUrl, cParams, cContentType, cAuthorization )
Local oOle, cRet := '' //, cRet2
cContentType := "application/x-www-form-urlencoded"
cAuthorization := ""
Try
oOle := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oOle := CreateObject( 'Microsoft.XMLHTTP' )
End
oOle:Open( 'POST', cUrl, .f. )
oOle:SetRequestHeader( "Content-Type",cContentType)
if !Empty( cAuthorization)
oOle:SetRequestHeader( "Authorization",cAuthorization)
end if
Try
oOle:Send( cParams )
//SysRefresh()
#ifdef __XHARBOUR__
cRet := oOle:ResponseBody
#Else
cRet := ""
hb_jsonDecode(oOle:ResponseBody, @cRet)
#EndIf
Catch
End
//cRet2 := ""
//hb_jsonDecode(oOle:ResponseBody, @cRet2)
//ADOStringGrava( cRet2 )
oOle := NIL
Return cRet
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br