0

我正在尝试扩展页面中可用的所有 div。特别是显示的 div mostra partite,例如:

在此处输入图像描述

查看 html 结构,我们有 class:event__header--no-my-games用于折叠的 div,所以我做了:

// page is the browser page
await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");

foreach(var cd in divs)
{
   await cd.ClickAsync();
}

第一个问题是该站点显示 7 个 div 已折叠,但我在divs变量上得到 20 个 div。另外,当我这样做时:

string html = await page.GetContentAsync();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

没有扩展的div,我做错了什么?

4

1 回答 1

0

以下代码工作正常:

await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");

foreach(var cd in divs)
{
   await cd.ClickAsync();
}

问题是打开的浏览器Puppeteer具有移动维度,在这种情况下,我正在寻找的选择器是不同的。

Viewport我通过以下方式修复了声明大小的问题:

Browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
      Headless = true,
      ExecutablePath = "your chrome path",
      DefaultViewport = new ViewPortOptions { Height = 1280, Width = 800}
});

这将使用正确的选择器以桌面模式打开站点。

希望这对某人有所帮助。

于 2020-07-28T13:26:00.317 回答