初心者です。
スクレイピングで取得した値を保存する処理を書いています。
$skiareaのski_area_nameとski_area_weatherに保存したいのですが、値を取っているのが別の関数内なので保存が上手くいきません。
ちなみに$areaと$weatherには何も入っていません。
Scraping
1public function handle() 2 { 3 echo 'スクリプトを実行しました。' . PHP_EOL; 4 $client = new Client(); 5 $site = $client->request('GET', 'https://example.com'); 6 7 $area = $site->filter('.list_result h2')->each(function($name){ 8 $skiareaname = $name->filter('a')->text(); 9 $skiarea = new Skiarea; 10 $skiarea->ski_area_name = $skiareaname; これしか値呼び出せない 11 $skiarea->save(); 12 }); 13 14 $weather = $site->filter('.condition tbody')->each(function($element){ 15 if(count($element->filter('td'))){ 16 $skiareawether = $element->filter('tr')->eq(0)->filter('td')->eq(2)->text(); 17 //$skiarea = new Skiarea; 18 //$skiarea->ski_area_weather = $skiareawether; これを保存したい 19 //$skiarea->save(); 20 } 21 }); 22 23 echo 'スクリプトを終了します' . PHP_EOL; 24 25 }
試した事
__construct()に
{
$skiarea = new Skiarea; $skiareaを設定してみましたが動きませんでした。
}
どなたか知恵を貸していただきたいです。
よろしくお願いします
php7.4.2
laravel 6.18