Pois é, veja que estranho: com o teu prg, funcionou perfeitamente.
Mas, quando coloquei no meu sistema, não funcionou.
Veja que fiz pouquíssimas alterações, apenas para ajudar o que preciso (passar o código em cada caso):
Código: Selecionar todos
Function lendocot(cod,or)
Cls
@ 12, 40 Say 'Aguarde'
oServer:= win_OleCreateObject("MSXML2.ServerXMLHTTP.6.0")
oServer:Open( "GET", 'https://finance.yahoo.com/quote/'+cod+'.SA/', .f. )
oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
oServer:SetRequestHeader( "Connection", "keep-alive" )
oServer:Send()
oServer:WaitForResponse( 100000 )
cHtml:= oServer:ResponseBody
@ 12, 40 Say ' '
// MemoWrit('siteA.txt', cHtml)
nIni := At(' window.rapidInstance = new window.YAHOO.i13n.Rapid(rapidConfig);', cHtml)
cHtml1:= SubStr( cHtml, nIni)
nIni := At(' data-reactid="30"><span', cHtml1)
cHtml1:= SubStr( cHtml1, nIni)
nIni := At('D(ib) data-reactid="31">', cHtml1) + 25
cHtml:= SubStr( cHtml1, nIni)
nFim := At('</span>', cHtml) - 1
cValor:= SubStr(cHtml1, nIni, nFim)
@ 14,5 say "Valor: "+substr(cValor,1,10)+" "
inkey(1.5)
Tirei a aspa que estava sobrando para testar, mas antes já tinha testado do jeito que estava, com as aspas, e também não funcionou no meu sistema (embora tenha funcionado no teu).
Estou juntado uma imagem dos resultados do nIni em cada caso. O XX depois do código eu coloquei apenas para verificar se não teria algo um espaço indevido depois do código.
Não consigo enxergar o que estou fazendo errado. Pode me ajudar?