如何使用Puppeteer抓取React网站?

时间:2020-03-15 14:34:34

标签: javascript node.js reactjs puppeteer

我正在尝试抓取一个使用react的网站,在chrome中我可以访问我想要的元素,但是当我尝试使用puppeteer时我无法访问同一元素,因为源代码未加载这些反应元素,有什么方法可以访问它。

这是代码

const request= require('request-promise')
const cheerio= require('cheerio');
const puppeteer = require("puppeteer");

const Url='https://angel.co/companies';


(async ()=>{

    const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();

    await page.goto(Url);
      const html = await page.content();
    // const response=request.get(Url)
    const $ = await cheerio.load(html);




    // const companies=$('div.base.startup').html()
     const companies=await $('div.base.startup > div.company.column > div > div.text > div.pitch').text()
    // const companies=document.querySelectorAll('div.base.startup > div.company.column > div > div.text > div.pitch')

    console.log(companies)
    await browser.close()

} )()

1 个答案:

答案 0 :(得分:0)

几个月前,我做了一些类似Python的事情。 基本上是等待元素出现在页面上(作为指示,React已完成加载)。

我查了一下Puppeteer的API,发现page.waitForSelector,我猜可以使用。