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