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');
我尝试通过 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');