Necesito obtener las direcciones URL de las imágenes de las direcciones URL de las publicaciones de imgur.
Las URL de las publicaciones se ven así: https://imgur.com/gallery/kgfDi
Pero las URL de las imágenes se ven así: https://i.imgur.com/DWVuwMc.jpeg
Lo probé con la biblioteca de web-scraping x-ray js pero por alguna razón no funciona. Por alguna razón, solo obtengo una matriz vacía.
Mi código (uso Firebase Cloud Functions):
var Xray = require('x-ray'); exports.getImgurLink = functions.https.onCall(async (data, context) => { var xray = Xray(); xray('https://imgur.com/a/1QEKZ2f', '.image-placeholder')(function (err, res) { console.log("res: "+res); }) });Tengo la idea con la radiografía de esta publicación: haga que el enlace imgur tenga .png o .jpg al final de la URL con nodeJS , pero ya es más antiguo, así que no estoy seguro de si todavía funciona.
¿Alguien puede mostrarme otro método para obtener URL de imágenes de imgur o cómo arreglar mi código de rayos x?
Gracias por tu tiempo.
Puedes usar titiritero para hacer eso. Con tus enlaces de ejemplo:
const puppeteer = require('puppeteer') exports.getImgurLink = functions.https.onCall(async (data, context) => { let url = "https://imgur.com/gallery/kgfDi" const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto(url) const el = await page.$x('//*[@id="root"]/div/div[1]/div[1]/div[3]/div/div[1]/div[2]/div/div/div[2]/div/div/div/div/div/img') el.forEach(async function(element){ const src = await element.getProperty('src') const scrText = await src.jsonValue() console.log({ scrText }) }) });