October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

Playwright se infinite-scroll products ki poori list kaise capture karein

Infinite scroll se products ki poori list paane ke liye rounds mein scroll karein, har baar visible cards extract karke stable ID ya URL se deduplicate karein, aur end condition ko verify karein.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Playwright se infinite-scroll catalog ki poori product list capture karne ke liye ek product card ko locator se identify karein, page ya catalog ke asli scroll container ko baar-baar scroll karein, aur har round mein dikh rahe products ko DOM se nikaal kar stable ID ya product URL se deduplicate karein. Explicit “end of results” marker ya known total mile to use completion signal banayein; warna site ke hisaab se bounded no-growth rule lagayein aur natije ko verify karein. Sirf ek baar DOM padh lena poori list milne ka saboot nahin hai.

Kaunsi strategy kaam karti hai?

Infinite scroll mein agle products scroll karne par load ho sakte hain. Isliye capture ko rounds mein chalayein: scroll karein, site ka loading signal poora hone ka wait karein, visible cards se fields extract karein, aur unhe memory mein jama karein. Agle round mein phir wahi karein. Playwright ke scrolling primitives aur locators is workflow ke liye hain; selectors aur sahi completion signal har site ke markup par nirbhar karte hain.

As an Amazon Associate I earn from qualifying purchases.

Virtualized catalog mein purane cards scroll karte hi DOM se hat sakte hain. Aise mein end par ek hi baar DOM padhne se pehle dekhe gaye products chhoot sakte hain. Har round ke records ko DOM se alag jama karein.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

JavaScript mein products ko rounds mein capture karein

Neeche ka code ek general pattern hai, kisi khaas store par test kiya hua script nahin. data-testid selectors, end-marker text, aur wait logic ko target page inspect karke badlein.

const cards = page.locator('[data-testid="product-card"]');
const seen = new Map();
let unchangedRounds = 0;
const maxUnchangedRounds = 3; // Site ke loading behavior ke mutabik tune karein

for (let round = 0; round < 100 && unchangedRounds < maxUnchangedRounds; round++) {
  // Agar catalog apne panel mein scroll karta hai, window ke bajay us panel ko scroll karein.
  await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));

  // Yeh bounded fallback hai. Jahan mumkin ho, site-specific signal ka wait karein.
  await page.waitForTimeout(500);

  const batch = await cards.evaluateAll(nodes => nodes.map(card => ({
    title: card.querySelector('[data-testid="product-title"]')?.textContent?.trim() ?? '',
    price: card.querySelector('[data-testid="price"]')?.textContent?.trim() ?? '',
    url: card.querySelector('a')?.href ?? ''
  })));

  const before = seen.size;
  for (const item of batch) {
    const key = item.url || item.title;
    if (key) seen.set(key, item);
  }
  unchangedRounds = seen.size === before ? unchangedRounds + 1 : 0;

  // Agar site explicit end marker deti hai, to use fallback se behtar signal banayein.
  // if (await page.getByText('End of results').isVisible()) break;
}

const products = [...seen.values()];
console.log(`Captured ${products.length} unique products`);
console.log(products);

Selectors ko target page se match karein

[data-testid="product-card"] aur andar ke title aur price selectors illustrative hain. Browser inspector ya Playwright locator se sabse chhota, stable card locator dhoondhein; phir title, price, image aur product link ko us card ke andar scope karein. Site agar accessible roles ya explicit test contracts deti hai, to unse bane locators ko tarjeeh dein.

Har card ke andar ka pehla a hamesha product page nahin hota. Sahi link selector chun kar URL ko canonicalize karna pad sakta hai. Product URL ya product ID aam taur par title se behtar deduplication key hai. Sirf title available ho to alag variants ek jaise naam rakh sakte hain; SKU ya variant ko key mein shamil karein.

Wait ko signal ke saath jodein

Fixed waitForTimeout(500) sirf bounded fallback hai: slow response mein yeh chhota pad sakta hai aur fast response mein bekaar waqt leta hai. Behtar hai us site ka signal observe karein—jaise loading spinner ka gayab hona, card count badhna, “load more” control ka badalna, ya end marker dikhna. Sirf networkidle ko universal proof na samjhein; Playwright actions aam taur par auto-wait karte hain aur general readiness ke liye web assertions ko tarjeeh di jaati hai.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Completion rule ko soch-samajhkar chunein

  • Explicit end marker: “End of results” jaise visible indicator par rukna achha signal hai, lekin pehle confirm karein ki woh sach mein catalog ke ant ko darshata hai.
  • Known total: Agar page total result count batata hai, unique records ko usse milayein. Filters, region ya variants ke kaaran total alag ho sakta hai.
  • No-growth fallback: Code mein teen unchanged rounds aur 100-round cap sirf examples hain, universal values nahin. Apne catalog ke loading behavior ke mutabik tune karein. Count na badhna stalled request, rate limit, ya virtualization ki wajah se bhi ho sakta hai—yeh apne aap mein end ka saboot nahin.

Page scroll karein ya catalog container?

Wahi element scroll karein jiska scroll position catalog ko aage badhata hai. Agar poora document move hota hai, window scroll karein. Agar catalog ek fixed-height panel ke andar hai, us panel ko scroll karna hoga; window scroll karne se naye cards load nahin honge.

Panel ka selector dekh kar uske scroll position ko badla ja sakta hai:

const catalog = page.locator('[data-testid="catalog-scroll-container"]');
await catalog.evaluate(el => { el.scrollTop = el.scrollHeight; });

Selector ko inspect karke badlein. Playwright ka doosra documented tareeqa panel par hover karke mouse-wheel input bhejna hai:

await page.getByTestId('catalog-scroll-container').hover();
await page.mouse.wheel(0, 900);

Agar scroll ke baad card count ya position nahin badalta, confirm karein ki sahi container target hua aur page par consent overlay ya koi doosra blocking layer to nahin hai.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Records ki completeness kaise jaanchein

  • Har round mein visible card count, unique-record count, scroll position aur loading/end signal log karein. Isse premature stop ko pehchanna aasan hota hai.
  • Records ko har round mein memory mein jama karein; yeh maan kar na chalein ki pehle dekhe cards aakhir tak DOM mein rahenge.
  • Duplicates ko stable key se merge karein. Agar product URL ke saath tracking query parameters aate hain, deduplication ke liye unhe normalize karna upyogi ho sakta hai—magar asli record mein zaroori variant ya region jankari na hataayein.
  • Natije ko known total ya site ke visible count se milayein, agar aisa count diya gaya ho. Sirf timeout ya unchanged count ko exhaustiveness ki guarantee na samjhein.
  • Catalog mein pagination, filters, regional availability ya “load more” control bhi ho sakta hai. Infinite scroll ka hona yeh guarantee nahin deta ki har product ek hi listing state mein mil jayega.

Rendered cards ya site ka data endpoint?

Rendered cards browser mein dikhne wali jankari capture karne ka seedha rasta hain, lekin markup badalne par selectors toot sakte hain aur virtualized list mein records ko scrolling ke dauran jama karna padta hai. Agar site documented API ya export deti hai aur uska istemal site ki terms ke mutabik allowed hai, to woh bade catalog ke liye zyada seedha ya bharosemand ho sakta hai. Kisi unnamed store ke liye specific endpoint ki sifarish nahin ki ja sakti; undocumented endpoint ko documented ya permitted maan kar na chalein.

Or skip the browser setup

ScreenshotNeo product-card data extractor nahin hai: iska API page ka screenshot ya PDF deta hai, product records ki structured list nahin. Agar aapko rendered page ka visual capture chahiye, ek GET request yeh kar sakti hai; ScreenshotNeo API documentation mein options dekhein.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Cookie banners, popups aur chat widgets capture se pehle hataye jaate hain; bot checks, blank pages aur failed loads bill nahin hote. AI agents ke liye MCP server mein screenshot aur PDF capture tools hain. Free plan mein bina card ke 1,000 screenshots mahina milte hain; paid plans $5 mein 3,000 se shuru hote hain. ScreenshotNeo ke baare mein adhik jaanein, ya free account banayein.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Aam dikkat aur unke hal

Scroll ke baad naye products nahin aate

Page ke bajay nested panel scroll ho raha ho sakta hai, ya ulta. Asli scrolling element identify karein, usi par scroll input bhejein, aur dekhein ki uska scroll position badla ya nahin. Consent overlay, filters, ya “load more” control bhi loading rok sakte hain.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Script jaldi ruk jaata hai

No-growth rounds ka limit bahut kam ho sakta hai, ya wait site ke response se chhota ho. Fixed sleep badhane se pehle spinner, count growth, control state, ya end marker jaisa site-specific signal use karein. Request failure aur rate-limit jaise errors bhi jaanchein.

List mein products chhoot rahe hain ya duplicates hain

DOM ko sirf aakhir mein padhne ke bajay har round ka batch jama karein. Deduplication ke liye title ke badle product ID ya URL ka istemal karein; agar variants alag entries hain to unki pehchan key mein rakhein.

Count nahin badhta, lekin end marker bhi nahin dikhta

Isse completion na maan lein. Yeh stalled request, rate limiting, galat scroll target, ya virtualized list ka asar ho sakta hai. Round logs dekhein, loading signal aur page errors inspect karein, aur total ya alag pagination control check karein.

locator.all() se adhuri list milti hai

locator.all() us waqt maujood elements ka turant snapshot deta hai; badalti list ke settle hone ka intezar nahin karta aur changing list par natije unpredictable ho sakte hain. Pehle site-specific condition se list stable hone ka wait karein, phir batch extract karein. Scrolling ke dauran records lena zaroori ho to har round mein extraction karein.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FAQ

Kya ek DOM snapshot poori product list ke liye kaafi hai?

Nahin. Lazy loading mein kuch products abhi load nahin hue honge; virtualization mein pehle dekhe cards DOM se nikal chuke ho sakte hain. Scroll ke saath records jama karein.

No-growth ke kitne rounds rakhne chahiye?

Iska universal number nahin hai. Site ki latency aur loading behavior ke mutabik threshold chunein, use bounded rakhein, aur unchanged count ko end ka pakka saboot na samjhein.

Kya timeout ka matlab catalog khatam ho gaya?

Nahin. Timeout failure ya slow response ka signal hai, completeness ka nahin. Errors aur site ke end ya total signal ko verify karein.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.