/** * Execute the console command. * * @return mixed */ public function handle() { $client = new \Goutte\Client(); foreach (\MkmScraper\Card::all() as $card) { if ($card->todaysPrice()->count() < 1) { $crawler = $client->request('GET', 'https://www.magiccardmarket.eu/Products/Singles/' . rawurlencode($card->set) . '/' . rawurlencode($card->name)); \Log::info('https://www.magiccardmarket.eu/Products/Singles/' . rawurlencode($card->set) . '/' . rawurlencode($card->name)); $available = 0; $lowfinal = 0; $trendfinal = 0; try { if ($av = $crawler->filter('.sectioncontent .availTable .row_0 .cell_0_1')->first()) { $available = $av->text(); } if ($lo = $crawler->filter('.sectioncontent .availTable .row_1 .cell_1_1 span')->first()) { $low = $lo->text(); $lowfinal = str_replace(",", ".", $low); } if ($tr = $crawler->filter('.sectioncontent .availTable .row_2 .cell_2_1')->first()) { $trend = $tr->text(); $trendnumber = explode(" ", $trend); $trendfinal = str_replace(",", ".", $trendnumber[0]); } } catch (Exception $e) { print $e->getMessage(); } $cardPrice = \MkmScraper\CardPrice::create(array("id_card" => $card->id, "low" => $lowfinal, "trend" => $trendfinal, "sellers" => $available)); } } }
/** * Execute the console command. * * @return mixed */ public function handle() { foreach (\MkmScraper\Card::all() as $card) { $product = queryMKMAPI("product/" . $card->id); $articles = queryMKMAPI("articles/" . $card->id); $price = $product->product->priceGuide; $cardPrice = \MkmScraper\CardPrice::create(array("id_card" => $card->id, "sell" => $price->SELL, "low" => $price->LOW, "lowex" => $price->LOWEX, "lowfoil" => $price->LOWFOIL, "avg" => $price->AVG, "trend" => $price->TREND, "sellers" => sizeof($articles->article))); } }
/** * Execute the console command. * * @return mixed */ public function handle() { $client = new \Goutte\Client(); foreach (\MkmScraper\Card::all() as $card) { if (\MkmScraper\GraphPrice::where("id_card", $card->id)->where("created_at", ">", date('Y-m-d H:i:s', strtotime('-1 week')))->count() < 1) { $crawler = $client->request('GET', 'https://www.magiccardmarket.eu/Products/Singles/' . rawurlencode($card->set) . '/' . rawurlencode($card->name)); $available = $crawler->filter('#ProductInformation script')->first()->text(); $split = explode("chartData =", $available); $split2 = explode(";var ctx", $split[1]); $object = json_decode($split2[0]); $count = 0; foreach ($object->labels as $key => $label) { if (\MkmScraper\GraphPrice::where("id_card", $card->id)->where("date", date_format(date_create_from_format('d.m.y', $label), 'Y-m-d'))->count() < 1) { \MkmScraper\GraphPrice::create(array("id_card" => $card->id, "date" => date_format(date_create_from_format('d.m.y', $label), 'Y-m-d'), "sell" => $object->datasets[0]->data[$key])); $count++; } } if ($count == 0) { \MkmScraper\GraphPrice::create(array("id_card" => $card->id, "date" => "0000-00-00", "sell" => '')); } print $card->name . "\n"; } } }
Route::get("scrape", function () { $client = new \Goutte\Client(); $crawler = $client->request('GET', 'http://mtgtop8.com/event?e=10488'); $link = $crawler->filter("td>div>div a")->each(function ($node) use($client) { if (strpos($node->attr('href'), "event") !== false) { print "http://mtgtop8.com/" . $node->attr('href') . " - " . $node->text() . "<br>"; $dlcrawler = $client->request('GET', "http://mtgtop8.com/" . $node->attr('href')); $link = $dlcrawler->filter("table table td .chosen_tr,table table td .hover_tr")->each(function ($node) { print "<b>" . $node->text() . "</b><br>"; }); } }); }); Route::get("htmlscrape", function () { $client = new \Goutte\Client(); foreach (\MkmScraper\Card::all() as $card) { $time = microtime(); $crawler = $client->request('GET', 'https://www.magiccardmarket.eu/Products/Singles/' . rawurlencode($card->set) . '/' . rawurlencode($card->name)); $available = $crawler->filter('#ProductInformation script')->first()->text(); $split = explode("chartData =", $available); $split2 = explode(";var ctx", $split[1]); $object = json_decode($split2[0]); foreach ($object->labels as $key => $label) { if (\MkmScraper\GraphPrice::where("id_card", $card->id)->where("date", date_format(date_create_from_format('d.m.y', $label), 'Y-m-d'))->count() < 1) { \MkmScraper\GraphPrice::create(array("id_card" => $card->id, "date" => date_format(date_create_from_format('d.m.y', $label), 'Y-m-d'), "sell" => $object->datasets[0]->data[$key])); } } print $card->name . " - " . (microtime() - $time) . " ms </br>"; } }); Route::get("decklists/wizards", function () {