PHP スクレイピングライブラリ Goutte で text() が空のときエラーじゃなくて空文字が返るようにする
経緯
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自体を書き換えないで空文字を出力するやり方があるので、そちらのほうがいいかもしれません。
今回の自分の場合タグが空でも空文字でも同じで問題なかったのでこうしました。
Author And Source
この問題について(PHP スクレイピングライブラリ Goutte で text() が空のときエラーじゃなくて空文字が返るようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/esu_eichi/items/056c9ff7f24d8ab9cc9e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .