Web scraping 如何在img src属性中获取实际URL,而不是使用Cheerio获取Base64编码的图像?
我正在使用一个表单发布一个URL,并对其进行处理,以从网站获取数据,用于刮取目的。除了图像的src返回一个base64图像文件而不是实际的URL之外,其他一切都正常工作 我试图通过data old hires属性获取相同的数据,但并非所有页面都有该属性。所以我不能相信这一点Web scraping 如何在img src属性中获取实际URL,而不是使用Cheerio获取Base64编码的图像?,web-scraping,cheerio,request-promise,Web Scraping,Cheerio,Request Promise,我正在使用一个表单发布一个URL,并对其进行处理,以从网站获取数据,用于刮取目的。除了图像的src返回一个base64图像文件而不是实际的URL之外,其他一切都正常工作 我试图通过data old hires属性获取相同的数据,但并非所有页面都有该属性。所以我不能相信这一点 try { const html = await request.get(url) const $ = await cheerio.load(html) const imageURL = $('#
try {
const html = await request.get(url)
const $ = await cheerio.load(html)
const imageURL = $('#imgTagWrapperId').find('img').attr('src')
res.render('results', {
imageURL
})
} catch (err) {
console.log(`APP ERROR: ${err.message}`)
res.render('index', {
err
})
}
那么,如何获取src属性中的实际数据而不是base64编码的图像呢?我认为图像的URL隐藏在
data-a-dynamic-image
属性值的某个地方。因此您可以解析值,它是JSON格式的
const cheerio = require ('cheerio')
const express = require ('express')
const request = require ('request-promise')
const app = express()
const port = 3000
const url = 'https://www.amazon.in/Arden-Grange-Mini-Adult-Food/dp/B01EVLSZN2/'
app.get('/', async (req, res) => {
try {
const html = await request(url)
const $ = await cheerio.load(html)
const imageURLJSON = JSON.parse($('#imgTagWrapperId img').attr('data-a-dynamic-image'))
res.send (imageURLJSON)
} catch (err) {
console.log(`APP ERROR: ${err.message}`)
res.render('index', {
err
})
}
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
这是实际数据。稍后会使用javascript对其进行更改。你可能需要一个木偶师来做这个。仅供参考,这是刮而不是刮。报废就像垃圾一样扔掉。