示例#1
0
 /**
  * @param Store $store
  *
  * @return int
  */
 public function fetchStorePrice(Store $store)
 {
     $client = new Http();
     /** @var \Symfony\Component\DomCrawler\Crawler $crawler */
     $crawler = $client->request('GET', $store->getUrl());
     /** @var \Symfony\Component\BrowserKit\Response $response */
     $response = $client->getResponse();
     if ($response->getStatus() != 200) {
         throw new \RuntimeException('Request failed "' . $store->getUrl() . '" (' . $response->getStatus() . ')');
     }
     $element = $crawler->filter($store->getSelector());
     $selectorValue = $store->getSelectorValue();
     switch ($selectorValue) {
         case 'innerHTML':
             $value = $element->html();
             break;
         default:
             $value = $element->attr($selectorValue);
             break;
     }
     return $this->getPriceValue($value);
 }