刮掉Goutte并等待满载

时间:2017-12-23 12:20:24

标签: php symfony scrape goutte

我尝试从流行的拍卖网络服务中刮取Goutte列表,但是他们的代码片段是由javascript呈现的,问题是Goutte只返回没有JS工作的DOM。因此,如果交响乐是无头浏览器,是否可以等待抓取直到呈现完整内容?我检查了幻影在哪里是正常的,但我从来没有在Goute中找到这种能力..

2 个答案:

答案 0 :(得分:1)

<强> https://github.com/FriendsOfPHP/Goutte

Goutte不解析Javascript,它不是一个无头浏览器,它只是下载内容并解析它而不运行javascript。

技术信息

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

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

答案 1 :(得分:0)

您可以使用 symfony / panther github / packagist),这是一款无头浏览器,可以解释JavaScript,并且已经支持 Symfony 5 em>,加上是官方包装!通常,您会将其用于测试目的,但我认为您可能会得到想要的结果。

您应将 Goutte 替换为 Panther

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

然后告诉您的搜寻器等待某个元素出现:

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