Javascript 使用Puppeter获取完整的网页源html-但始终缺少某些部分

Javascript 使用Puppeter获取完整的网页源html-但始终缺少某些部分,javascript,web-scraping,web-crawler,puppeteer,headless-browser,Javascript,Web Scraping,Web Crawler,Puppeteer,Headless Browser,我正试图在以下网页上刮取特定字符串: 我想从这个网页源中获得的信息是下面字符串中的序列号(这是我可以在右键单击鼠标-> "View Page source"): name="nr_rooms_4377601_232287150_0_1_0"/ name="nr_rooms_4377601_232287150_1_1_0" 我正在使用“木偶演员”,下面是我的代码: const puppeteer = require('puppe

我正试图在以下网页上刮取特定字符串:

我想从这个网页源中获得的信息是下面字符串中的序列号(这是我可以在右键单击鼠标->

"View Page source"): 
 name="nr_rooms_4377601_232287150_0_1_0"/ name="nr_rooms_4377601_232287150_1_1_0" 
我正在使用“
木偶演员”
,下面是我的代码:

const puppeteer = require('puppeteer');
(async() => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    //await page.goto('https://example.com');
    const response = await page.goto("My-url-above");
    let bodyHTML = await page.evaluate(() => document.body.innerHTML);
    let outbodyHTML = await page.evaluate(() => document.body.outerHTML);
    console.log(await response.text());
    console.log(await page.content());
    await browser.close();
})()
但是我在
response.text()或
page.content()中找不到要查找的字符串

我是否在第页中使用了错误的方法


如何将实际的页面源代码转储到网页上,该源代码与我右键单击鼠标的源代码完全相同?

如果您调查这些字符串出现的位置,则可以在
元素中看到特定类(
.hprt nos select
):


您将等待该元素加载到DOM中,然后它也将在页面源中可见:

wait page.waitForSelector('.hprt nos select',{timeout:0});
但您的问题实际上在于,您访问的url有一些额外的url参数:
?checkin=2020-09-19;checkout=2020-09-20;i_am\u from=nl;
,木偶师不考虑这些参数(你可以拍摄一张完整的屏幕截图,你会看到它仍然有默认的酒店搜索表单,没有具体的酒店优惠,而不是你期望的)


您应该使用Puppeter(
page.click()
等)与搜索表单交互,自己设置日期和原产国,以获得预期的页面内容。

是的,您所说的是正确的,“Puppeter”没有考虑我的url参数,所以我的url不涉及我实际查找的信息,@thedavidbarton,有没有办法让Puppeter接受我的url参数?我不确定是否有办法。如果您重复使用手动页面访问中的cookie,可能会起作用,但在这种情况下,您需要手动执行很多操作好的。我建议用类似用户的操作自动化整个过程:用page.click选择日期。这样它就会工作。一个发现是:当我禁用“headless”模式时,“const browser=wait puppeter.launch({headless:false})”,url参数在我访问页面时仍然有效。但我不知道为什么yetIf headful模式有助于查询参数,您可以使用此shady npm软件包使您的headful chrome像headful chrome一样: