Galera, estou tentando criar uma “api” com dados de um site. Não entendo muito de PHP, então venho pedir a ajuda de vocês.
É o seguinte:
Gostaria de pegar usar o nome, telefone e endereço de algumas empresas que estão hospedadas nesse dominio: http://www.disk3000.com.br/
O que eu sei é que alterando o final dessa URL (265) http://www.disk3000.com.br/index.php?pg=7&sub=265, eu vou mudando a empresa. Tem no maximo 500 empresas, então o final do link vai de 1 a 500. As informações que eu quero, nesse caso (empresa final 265), estão nas linhas 285 (nome da empresa), 286 (telefone), 303-305 (endereço).
Como eu faço para montar uma api com os dados das 500 empresas com PHP?
Agradeço desde já a ajuda.
PHP possui a biblioteca cURL, que funciona como um cliente web que retorna as páginas numa string, de onde você pode fazer um parse dos dados.
Outra opção é usar a função nativa file_get_contents passando uma url, ela também vai retornar uma string com todo conteúdo da página, mas funciona melhor com requisições puramente GET.
Com o conteúdo, você vai procurar uma api que faz o parser do html para extrair só as informações que precisa.
2 curtidas
Então fiz uma gambiarra e parece que deu certo.
Mas agora to com outro problema, está vindo com caracteres especiais.
É problema com encoding. Vc pode criar uma função que faz a conversão pra vc, assim:
<?php
function file_get_contents_utf8($fn) {
$content = file_get_contents($fn);
return mb_convert_encoding($content, 'UTF-8',
mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}
// EXEMPLO:
$dadosSite = file_get_contents_utf8("http://www.disk3000.com.br/index.php?pg=7&sub=4");
$var1 = explode('<td class="tx2" align="left">', $dadosSite);
$var2 = explode('</td>', $var1[1]);
print $var2[0];
Fonte: http://truelogic.org/wordpress/2018/08/19/php-file_get_contents-for-utf-encoded-content/
1 curtida