Scrape Goutte 等待满载

Scrape Goutte and waiting for full loading

我尝试通过 Goutte 列表从流行的拍卖网络服务中抓取,但它们的部分代码是由 javascript 呈现的,问题是 Goutte return 只有我 DOM 没有 JS工作。因此,如果 symphony 是无头浏览器,是否可以等待抓取直到呈现完整内容?我查了phantomjs哪里是正常的,但是我从来没有在Goute中发现这个能力..

https://github.com/FriendsOfPHP/Goutte

Goutte 不解析 Javascript,它不是无头浏览器,它只是下载内容并在没有 运行 javascript 的情况下解析它。

技术资料

Goutte 是以下优秀 PHP 库的薄包装:

Symfony 组件:BrowserKit、CssSelector 和 DomCrawler; Guzzle HTTP 组件。

您可以使用 symfony/panther (github/packagist),这是一个无头浏览器,可以解释 javascript 并且已经支持 Symfony 5,plus是官方包!通常你会将它用于测试目的,但我认为你可能会得到你想要的结果。

您应该将 Goutte 替换为 Panther:

$client = \Symfony\Component\Panther\Client::createFirefoxClient();

然后告诉您的爬虫等待元素出现:

$crawler = $client->waitFor('#javascript-generated-element');