域名爬虫。如何点击按钮? "Unable to navigate from a "按钮“标签”。

DomCrawler. How to click button? "Unable to navigate from a "button" tag."

我得到了表格:

<button type="submit" id="dostawa_zapisz" name="dostawa[zapisz]">Zapisz</button>
<input type="hidden" id="dostawa__token" name="dostawa[_token]" value="foo">

并想点击它:

//        $link = $crawler->filter('button:contains("Zapisz")')->link();
//        $link = $crawler->filterXPath('//*[@id="dostawa_zapisz"]')->link();
        $link = $crawler->selectButton('dostawa[zapisz]')->link();
        $crawler = $client->click($link);

但它显示:

"Unable to navigate from a "button" tag."

(除了 this 之外,是否有任何关于使用 DomCrawler 进行导航的文档)

你有一个提交按钮,没有 link,所以你需要 'press' 它(或提交)。

我在 Goutte Web Scraper 上苦苦挣扎,最终使用 Mink 进行功能测试。您可以阅读my blog about that。它提供了一些有用的信息,此外,如果您关注 Goutte Web Scraper link,那里还有更多信息。

但我要指出的是,无头浏览器并不总是运行良好,尤其是如果您打算使用 Javascript。

对于你的代码,如果你打算使用它,你可能需要做这样的事情:

$form = $crawler->selectButton('Zapisz')->form();

然后填写表格并提交。