Skip to content

Instantly share code, notes, and snippets.

@fabianrod
Created August 31, 2023 16:40
Show Gist options
  • Save fabianrod/0a014f37e465d17d84bee5d9bb16d885 to your computer and use it in GitHub Desktop.
Save fabianrod/0a014f37e465d17d84bee5d9bb16d885 to your computer and use it in GitHub Desktop.
Extraer información de página de resultados de TikTok
let descriptions = document.querySelectorAll('div[data-e2e="search-card-desc"]');
let accounts = document.querySelectorAll('p[data-e2e="search-card-user-unique-id"]');
let views = document.querySelectorAll('div[data-e2e="search-card-like-container"]');
let dates = document.querySelectorAll('[class*="DivTimeTag"]');
let videoDivs = document.querySelectorAll('div[data-e2e="search_video-item"]');
function getVideoLink(index) {
const div = videoDivs[index];
const link = div ? div.querySelector('a') : null;
return link ? link.getAttribute('href') : null;
}
let results = [];
for (let i = 0; i < descriptions.length; i++) {
const regexMatch = descriptions[i].textContent.trim().match(/https:\/\/wa\.me\/\S+/);
const accountText = accounts[i]?.textContent.trim();
const viewText = views[i]?.textContent.trim();
const dateText = dates[i]?.textContent.trim() || "No date";
const videoLink = getVideoLink(i);
if (regexMatch) {
results.push([regexMatch[0], accountText, viewText, dateText, videoLink].filter(Boolean).join(', '));
}
}
// Filtrar resultados con links de wa.me únicos
let seenLinks = {};
let uniqueResults = results.filter(item => {
let link = item.split(",")[0]; // asumimos que el link wa.me es el primer elemento
if (!seenLinks[link]) {
seenLinks[link] = true;
return true; // Mantener este item
}
return false; // Eliminar este item
});
// Convertir el array a un string y mostrarlo
console.log(uniqueResults.join('\n'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment