##経緯
webスクレイパとしてGoutteを使っています。
https://github.com/FriendsOfPHP/Goutte
下の記事にありますが、
https://qiita.com/zaburo/items/45d748ae3966bf08323f
対象のタグが無いときか、空文字のときに、
エラーを吐いて動かなくなるので、
いっそエラーを吐かなくしました。
##コード
Crawler.php
の大体551行目くらいで一行書き換えるだけです。
before.php
public function text()
{
if (!count($this)) {
throw new \InvalidArgumentException('The current node list is empty.');
}
return $this->getNode(0)->nodeValue;
}
after.php
public function text()
{
if (!count($this)) {
//throw new \InvalidArgumentException('The current node list is empty.');
return '';
}
return $this->getNode(0)->nodeValue;
}
#注意
この変更によって、タグの中が空文字なのかタグ自体がないのかが判定できなくなるかもしれません。後日ちゃんとコード追います。
引用の記事にgoutte自体を書き換えないで空文字を出力するやり方があるので、そちらのほうがいいかもしれません。
今回の自分の場合タグが空でも空文字でも同じで問題なかったのでこうしました。