【问题标题】:What is the best way to scrape a drop down menu with Puppeteer without scraping sub-menus?用 Puppeteer 抓取下拉菜单而不抓取子菜单的最佳方法是什么?
【发布时间】:2020-06-20 23:37:10
【问题描述】:

我在尝试抓取一个简单的网站时遇到了麻烦,我是新手,因此可能会出现一些错误,我从带有类别的下拉菜单中检索数据,它可以工作,但我不确定我如何避免刮掉子菜单,因为收集的文本一团糟。有任何想法吗?谢谢。

const puppeteer = require('puppeteer');
    
    (async()=>{
        const browser = await puppeteer.launch({headless:true});
        try{
        const page = await browser.newPage();
        await page.setViewport({width:1920, height: 1080})
        await page.goto('https://www.tiendasjumbo.co/');
        await page.waitForSelector('#home-page > nav > div:nth-child(1) > button.button-categories.toggleSlide');
    
            const element = await page.$("#home-page > div.navigation__toggle.wrapper.page-menu > div.center > div.navigation_categories > ul");
            const text = await page.evaluate(element => element.textContent, element);
            console.log(text);
    
        }catch(err){
        console.error(err.message);
        }finally{
            await browser.close();
        }
    
    
    })();

【问题讨论】:

  • 你可以尝试.innerText而不是.textContent作为可读部分。

标签: javascript node.js web-scraping puppeteer screen-scraping


【解决方案1】:

您可以使用.trim() 删除所有空格,使用.innerText 准备您的字符串。

const text = await page.evaluate(element => element.innerText.trim(), element);

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 1970-01-01
    • 2020-02-06
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2021-03-26
    • 1970-01-01
    相关资源
    最近更新 更多