Last active
February 1, 2022 23:54
-
-
Save Silventino/c70daca479dff19d284d6e3f778434e5 to your computer and use it in GitHub Desktop.
Buscar CEP por endereço ou endereço por CEP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const puppeteer = require('puppeteer'); | |
async function buscaCEP(txtbusca) { | |
try { | |
const browser = await puppeteer.launch(); | |
const page = await browser.newPage(); | |
await page.goto('https://buscacepinter.correios.com.br/app/endereco/index.php', { waitUntil: 'networkidle2' }); | |
await page.waitForSelector('input[name=endereco]'); | |
await page.$eval('input[name=endereco]', (el, txtbusca) => el.value = txtbusca, txtbusca); | |
await page.click('button[name="btn_pesquisar"]'); | |
await page.waitForSelector('td[data-th=CEP]', { timeout: 8000 }); | |
page.on('console', async (msg) => { | |
const msgArgs = msg.args(); | |
for (let i = 0; i < msgArgs.length; ++i) { | |
console.log(await msgArgs[i].jsonValue()); | |
} | |
}); | |
const result = await page.evaluate(() => { | |
const tbody = document.querySelector('#resultado-DNEC tbody'); | |
if (!tbody) { | |
throw new Error("CEP não encontrado."); | |
} | |
const rows = tbody.querySelectorAll("tr"); | |
return Array.from(rows, (row) => { | |
const data = Array.from(row.querySelectorAll("td")); | |
const cepObj = {}; | |
for (let i = 0; i < data.length; i++) { | |
const d = data[i]; | |
cepObj[d.getAttribute("data-th") ?? "erro"] = d.textContent; | |
} | |
return cepObj; | |
}) | |
}); | |
browser.close(); | |
return result; | |
} | |
catch (err) { | |
console.log("err", err); | |
throw new Error("CEP não encontrado;") | |
} | |
} | |
async function teste() { | |
console.log("#################################"); | |
console.log("Buscar endereço pelo CEP:"); | |
const teste1 = await buscaCEP("07262130"); | |
console.log("resultado:", teste1); | |
console.log("#################################"); | |
console.log("Buscar CEP pelo endereço:"); | |
const teste2 = await buscaCEP("Rua Dois Jardim Eliane São Paulo SP"); | |
console.log("resultado:", teste2); | |
} | |
teste(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment