Estou tentando pegar uma lista de empresas e seus códigos do link https://www.infomoney.com.br/cotacoes/empresas-b3/
Montem um scraping para isto, segue o código
$url = "https://www.infomoney.com.br/cotacoes/empresas-b3/";
$dados = file_get_contents($url);
$regexTudo = '/<td class="higher".*?>s?((A-z0-9)+.*)</td>s.*<td class="strong".*?>s.*<a.*?>((A-z0-9)+.*)</a>/';
$regexEmpresa = '/<td class="higher".*?>s?((A-z0-9)+.*)</td>/';
$regexCodigo = '/<td class="strong".*?>s.*<a.*?>((A-z0-9)+.*)</a>/';
preg_match_all($regexCodigo, $dados, $codigo);
preg_match_all($regexEmpresa, $dados, $empresa);
var_dump($empresa(1));
O retorno para o nome das empresas esta sendo
array (size=409)
0 => string 'Hedge Investiments' (length=18)
1 => string 'BM Brascam Lajes Corporativas' (length=29)
2 => string 'Real Estate Capital' (length=19)
3 => string 'Urca Prime' (length=10)
4 => string 'Devant Recebíveis Imobiliários' (length=32)
5 => string 'Mérito Investimentos' (length=21)
6 => string 'Neogrid ' (length=8)
7 => string 'Berkshire Hathaway Inc.' (length=23)
8 => string 'Baxter International Inc.' (length=25)
9 => string 'Baker Hughes Company' (length=20)
10 => string 'AT&T Inc.' (length=13)
....mais registros abaixo
O retorno para os códigos esta sendo
array (size=683)
0 => string 'CJCT11' (length=6)
1 => string 'BMLC11' (length=6)
2 => string 'RECR11' (length=6)
3 => string 'URPR11' (length=6)
4 => string 'DEVA11' (length=6)
5 => string 'MFAI11' (length=6)
6 => string 'NGRD3' (length=5)
7 => string 'BRK.B' (length=5)
8 => string 'BAX' (length=3)
9 => string 'BKR' (length=3)
10 => string 'T' (length=1)
...mais registros abaixo
O que esta pegando é que tem casos que a mesma empresa possui várias ações (como mostra a imagem abaixo, algumas chegam a ter 5, quero poder alinhas cada código a sua empresa, para depois colocar isto em Banco de dados, é possível fazer isto?
Desde já agradeço a todos