Spaces:
Sleeping
Sleeping
File size: 1,851 Bytes
1576c93 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
const express = require("express")
const app = express();
const puppeteer = require("puppeteer");
const getData = async () => {
// Start a Puppeteer session with:
// - a visible browser (`headless: false` - easier to debug because you'll see the browser in action)
// - no default viewport (`defaultViewport: null` - website page will in full width and height)
const browser = await puppeteer.launch({
headless: true,
defaultViewport: null,
});
console.log("Scrapping started");
// Open a new page
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on("request", (request) => {
// return request.continue();
if(request.resourceType() == 'document'){
request.continue();
}
else{
request.abort();
}
});
url = "https://www.flipkart.com/apple-iphone-15-blue-128-gb/p/itmbf14ef54f645d";
await page.goto(url, {
// waitUntil: "domcontentloaded",
});
// console.log(await page.content());
const title = await page.evaluate(() => {
const elem = document.querySelector("span.B_NuCI");
if (elem)
return elem.textContent;
});
const price = await page.evaluate(() => {
const elem = document.querySelector("div._30jeq3._16Jk6d");
if (elem)
return elem.textContent;
});
const image = await page.evaluate(() => {
const elem = document.querySelector("div.CXW8mj._3nMexc>img");
if (elem)
return elem.src;
});
page.close();
return { title, price, image };
};
app.get("/", async (req, res) => {
const data = await getData();
res.type("json");
res.send(JSON.stringify(data));
})
app.listen(8080, () => console.log("Server running at port 8080")); |