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 和 Symfony DomCrawler 从父 div 中过滤子节点值,其中 style = "..."?
如何在 laravel 中使用 goutte 库抓取“https://shopee.co.id/search?keyword=phone”?