Here is an example using phpQuery-one-file for CEP consultation; The part of cURL is not included because the focus is the use of phpQuery; This is one of several possible solutions.
phpQuery: link
$body = $client->send($request)->getBody(); //Aqui seria seu HTML
//Inclusão do phpQuery
if (!method_exists('phpQuery', 'newDocumentHTML'))
require_once __DIR__ . DIRECTORY_SEPARATOR . 'phpQuery-onefile.php';
//Inicialização do documento, substitua $body pela sua variável contendo o HTML;
$doc = \phpQuery::newDocumentHTML($body, $charset = 'utf-8');
$resultados = [];
//Itera sobre as linhas da tabela;
foreach(\phpQuery::pq('table[cellpadding="5"]')->find('tr') as $linha) {
$dados = [];
foreach(\phpQuery::pq($linha)->find('td') as $coluna) {
$valor = htmlspecialchars_decode(trim(preg_replace('/\s+/', ' ', \phpQuery::pq($coluna)->html())));
$dados[] = $valor;
}
$dadosFinal['logradouro'] = $dados[0];
$dadosFinal['bairro'] = $dados[1];
$dadosFinal['localidade'] = $dados[2];
$dadosFinal['uf'] = $dados[3];
$dadosFinal['cep'] = $dados[4];
$resultados[] = $dadosFinal;
}
return $resultados;
Applying to your need, you would do something like:
//Inclusão do phpQuery
if (!method_exists('phpQuery', 'newDocumentHTML'))
require_once __DIR__ . DIRECTORY_SEPARATOR . 'phpQuery-onefile.php';
//Inicialização do documento, substitua $body pela sua variável contendo o HTML;
$doc = \phpQuery::newDocumentHTML($body, $charset = 'utf-8');
foreach(\phpQuery::pq('ul#lista_municipios')->find('li') as $linha) {
$valor = htmlspecialchars_decode(\phpQuery::pq($linha)->html());//item2
$valorAttr = htmlspecialchars_decode(\phpQuery::pq($linha)->attr('href')); //Item1 (valor do href)
$item1 = explode('|', $valorAttr)[1]; //mantive $valorAttr caso você precise.
}
In the end, I would need tests and adaptations for your needs;