[RESOLVIDO] Como fazer um parse em PHP para utilizar info de outro site?

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.

2019-03-12%20(2)

É 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

Resolveu!
Obrigado mesmo, wldomiciano, ajudou muito cara. Ficou certinho.
:clap:t2::clap:t2::clap:t2:

1 curtida