/** * @param GoogleDOM $googleDOM * @param \DomElement $node * @return array */ protected function parseItem(GoogleDOM $googleDOM, \DomElement $node) { $card = []; $xpathTitle = "descendant::a[@class = '_Dk']"; $aTag = $googleDOM->getXpath()->query($xpathTitle, $node)->item(0); if ($aTag) { $card['title'] = $aTag->nodeValue; $card['url'] = $aTag->getAttribute('href'); $card['description'] = function () use($googleDOM, $node) { $span = $googleDOM->getXpath()->query("descendant::span[@class='_dwd st s std']", $node); if ($span && $span->length > 0) { return $span->item(0)->nodeValue; } return null; }; } return new BaseResult('', $card); }
/** * @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); }