File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/ScrapResultController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class ScrapResultController extends Controller
{
public function scrapForWord(Request $request)
{
$word = $request->word;
$trunc = $request->trunc;
if (!$word) {
return array('r' => false, 'm' => 'No se indico ninguna palabra');
}
// Native execution python script.
exec('cd /var/www/vhosts/venv && python36/bin/scrapy runspider myspider.py -a word=' . $word . ' -a truncate=' . $trunc . ' -a user=' . config('connections.scraper.username') . ' -a passw=' . config('connections.scraper.password') . ' -a host=' . config('connections.scraper.host') . ' -a db=' . config('connections.scraper.database'), $ret, $res);
return array('r' => true, 'm' => 'success:' . config('connections.scraper.database'));
}
public function getResult($word)
{
$table = config('connections.scraper.table');
$r = DB::connection('scraper')->table($table)->where('word', $word)->get();
$r = $this->utf8_recursively($r);
return $r;
}
public static function utf8_recursively($dat)
{
if (is_string($dat)) {
return utf8_encode($dat);
} elseif (is_array($dat)) {
$ret = [];
foreach ($dat as $i => $d) $ret[$i] = self::utf8_recursively($d);
return $ret;
} elseif (is_object($dat)) {
foreach ($dat as $i => $d) $dat->$i = self::utf8_recursively($d);
return $dat;
} else {
return $dat;
}
}
}