/** * @param GoogleDOM $googleDOM * @param \DOMElement $imgNode * @return array */ private function parseItem(GoogleDOM $googleDOM, \DOMElement $imgNode) { $data = ['sourceUrl' => function () use($imgNode, $googleDOM) { $img = $googleDOM->getXpath()->query('descendant::img', $imgNode)->item(0); if (!$img) { return $googleDOM->getUrl()->resolve('/'); } return $googleDOM->getUrl()->resolveAsString($img->getAttribute('title')); }, 'targetUrl' => function () use($imgNode, $googleDOM) { return $googleDOM->getUrl()->resolveAsString($imgNode->getAttribute('href')); }, 'image' => function () use($imgNode, $googleDOM) { $img = $googleDOM->getXpath()->query('descendant::img', $imgNode)->item(0); if (!$img) { return ''; } return MediaFactory::createMediaFromSrc($img->getAttribute('src')); }]; return new BaseResult(NaturalResultType::IMAGE_GROUP_IMAGE, $data); }