selectButton 并点击 Goutte scraper PHP

Posted

技术标签:

【中文标题】selectButton 并点击 Goutte scraper PHP【英文标题】:selectButton and click with Goutte scraper PHP 【发布时间】:2019-02-13 15:50:47 【问题描述】:

我需要在我的页面上点击一个“查看更多”按钮,但它不是一个表单,它是一个按钮类型的“按钮”。

我的代码如下所示:

$client = new Client();
$crawler = $client->request('GET', 'https://www.xxxx.com');
$button = $crawler->selectButton('View more');
$client->click($button);

这会返回:

可捕获的致命错误:传递给 Symfony\Component\BrowserKit\Client::click() 的参数 1 必须是 Symfony\Component\DomCrawler\Link 的实例,给出 Symfony\Component\DomCrawler\Crawler 的实例,在 C 中调用:\xampp\htdocs\scraper\index.php 在第 17 行并在 C:\xampp\htdocs\scraper\vendor\symfony\browser-kit\Client.php 中定义在第 238 行

有什么想法可能是错的吗?

【问题讨论】:

【参考方案1】:

根据文档:

Crawler 上提供了一个 selectButton() 方法,该方法返回 另一个匹配按钮的爬虫(输入[类型=提交], 输入[type=image],或一个按钮)与给定的文本。

其实就是这个错误的意思:click()接收到的参数是crawler,其实应该是Link。我对 goutte scraper 不熟悉,但您是否尝试过:

$button = $crawler->selectButton('View more')->button();
$client->click($button);

【讨论】:

以上是关于selectButton 并点击 Goutte scraper PHP的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Goutte 获取响应状态代码

PHP使用Goutte不校验SSL证书

什么会导致Goutte驱动程序不遵循重定向?

PHP Goutte 网页抓取

如何使用 Goutte 和 Symfony DomCrawler 从父 div 中过滤子节点值,其中 style = "..."?

如何在 laravel 中使用 goutte 库抓取“https://shopee.co.id/search?keyword=phone”?