我如何使用LARAVEL将抓取的数据发送到Mysql表

时间:2018-09-19 04:41:25

标签: php mysql laravel scrape

我用php抓取了一些数据,我想将其从Laravel发送到Mysql。我连接到mysql,但不知道如何发送它。

这是我的抓取代码;

$servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "laravel-test";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
    if ($conn->connect_error) 
    {

        die("Connection failed: " . $conn->connect_error);

    } 

    $curl = curl_init();
    curl_setopt($curl,CURLOPT_URL,"https://suumo.jp/ms/shinchiku/osaka/sa_osaka/");
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1); 
    $sonuc = curl_exec($curl); 

    preg_match_all('@<div class="cassette-price">(.*?)</div>@si',$sonuc, $new);
    preg_match_all('@<ul class="cassette-plan">(.*?)</ul>@si',$sonuc, $info);
    preg_match_all('@<div class="cassette-header">(.*?)</div>@si',$sonuc, $name);


    $name = $name[0];
    $new = $new[0];
    $info = $info[0];


    for($i=0; $i < count($info);$i++)
    {
    echo $name[$i];
    echo $info[$i]; 
    echo $new[$i];  
    }

感谢帮助!

我正在使用laravel 5.7。

1 个答案:

答案 0 :(得分:0)

据我了解,您可以将数据添加到常规表中

首先,您可以创建一个表(根据注释,您已经完成了该表)

然后将配置添加到Laravel [https://laravel.com/docs/5.7/database]

  

您的应用程序的数据库配置位于   config/database.php。在此文件中,您可以定义所有数据库   连接,并指定应由哪个连接使用   默认。大多数受支持的数据库系统的示例是   在此文件中提供。

然后使用Laravel数据库添加数据

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show a list of all of the application's users.
     *
     * @return Response
     */
    public function index()
    {
      for($i=0; $i < count($info);$i++)
      {
        DB::insert('insert into users (name, info, new)
        values (?, ?, ?)', [1, $name[$i], $info[$i], $new[$i] ]);

您还可以将数据添加到数组,然后将其插入一次:

for($i=0; $i < count($info);$i++)
{
           $data[] =[
                    'name' => $name[$i],
                    'info' => $info[$i],
                    'news' => $news[$i],
                   ];  
}
DB::insert($data);

(请参阅Insert Multiple Records At Once With Laravel