示例#1
0
 /**
  * @param Crawler $crawler
  * @return ExtractedStats
  */
 public function extractStats(Crawler $crawler)
 {
     $views = intval(str_replace(',', '', StringHelper::filterText($crawler, '.under-title-info span:nth-of-type(2)')));
     $stats = new ExtractedStats();
     $stats->setViews($views);
     return $stats;
 }
示例#2
0
 /**
  * @param Crawler $crawler
  * @return ExtractedOwner
  */
 public function extractOwner(Crawler $crawler)
 {
     $owner = new ExtractedOwner();
     $owner->setAvatarByUrl($crawler->filter('.project-owner-info img.profile-list-image')->attr('src'));
     $owner->setName(StringHelper::filterText($crawler, '.project-owner-info .profile-list-name a'));
     return $owner;
 }
示例#3
0
 /**
  * @param Crawler $crawler
  * @return ExtractedStats
  */
 public function extractStats(Crawler $crawler)
 {
     $stats = new ExtractedStats();
     $stats->setDislikes(trim($crawler->filter("*[title='I dislike this']")->text()));
     $stats->setLikes(trim($crawler->filter("*[title='I like this']")->text()));
     $stats->setViews(str_replace(',', '', StringHelper::filterText($crawler, ".watch-view-count")));
     return $stats;
 }
示例#4
0
 /**
  * @param Crawler $crawler
  * @return ExtractedAlbum
  */
 public function extract(Crawler $crawler)
 {
     $album = new ExtractedAlbum();
     $album->setTitle(StringHelper::filterText($crawler, 'title'));
     if ($crawler->filter("meta[name='description']")->count() > 0) {
         $album->setDescription($crawler->filter("meta[name='description']")->attr('content'));
     }
     $album->setImages($this->extractImages($crawler));
     return $album;
 }
示例#5
0
 /**
  * @param Crawler $crawler
  * @return ExtractedOwner
  */
 public function extractOwner(Crawler $crawler)
 {
     $ownerImageProperty = $crawler->filter('.photo-attribution .avatar')->attr('style');
     preg_match("/background-image: url\\((.*)\\);/", $ownerImageProperty, $ownerImageOutput);
     $owner = new ExtractedOwner();
     if (count($ownerImageOutput) == 2) {
         $owner->setAvatarByUrl($ownerImageOutput[1]);
     }
     $owner->setName(StringHelper::filterText($crawler, '.owner-name:first-child'));
     return $owner;
 }
示例#6
0
 /**
  * @return ExtractedStats|null
  */
 public function extractStats()
 {
     try {
         $statsCrawler = $this->getStatsPageCrawler();
         $stats = new ExtractedStats();
         $stats->setLikes(str_replace(',', '', StringHelper::filterText($statsCrawler, "#like_totals")));
         $views = StringHelper::filterText($statsCrawler, "#play_totals");
         if (StringHelper::endsWith($views, 'K')) {
             $views = rtrim($views, "K") * 1000;
         }
         $stats->setViews($views);
         return $stats;
     } catch (PageNotFoundException $e) {
         return null;
     } catch (ServerErrorException $e) {
         return null;
     }
 }
示例#7
0
 /**
  * @param Crawler $crawler
  * @return ExtractedOwner
  */
 public function extractOwner(Crawler $crawler)
 {
     $owner = new ExtractedOwner();
     $owner->setName(StringHelper::filterText($crawler, '.under-title-info a'));
     return $owner;
 }