2016-02-21 120 views
1

我是Laravel 5.2的新手,我想刮一個網頁。我開始知道這可以通過使用Goutte來完成。並不知道如何使用它。如何使用Goutte刮擦laravel 5.2?

我已經安裝了Laravel和Goutte,但是如何使用它?如何設置Controller,路由和所有需要的東西?

+0

我剛裝庫文件 –

+1

你想使用GOUTTE的web應用程序裏面裏面?這是可能的,但我通常在Web服務器之外的控制檯程序中執行此操作(因爲刮取是一項緩慢的活動,您不希望容納您的Web服務器)。一個好的第一種方法是創建一個快速控制檯程序來完成你想要做的事情,並讓它在那裏工作(即完全沒有Laravel)。您可以在10行代碼中對Goutte進行基本的修改。 – halfer

+1

您是否嘗試了'README'中的Goutte示例? – halfer

回答

6

我找到了我的答案。 我只是將網址添加到路由和創建控制器

Route::resource('scrape','[email protected]'); 

的WebScraperController

<?php 

    namespace App\Http\Controllers; 

    use Illuminate\Http\Request; 
    use Goutte\Client; 
    use Symfony\Component\DomCrawler\Crawler; 
    use App\Http\Requests; 
    class WebScraperController extends Controller 
    { 
    public function index() 
    { 
    // Create a new Goutte client instance 
    $client = new Client(); 

// Hackery to allow HTTPS 
    $guzzleclient = new \GuzzleHttp\Client([ 
     'timeout' => 60, 
     'verify' => false, 
    ]); 

    // Create DOM from URL or file 
    $html = file_get_html('https://www.facebook.com'); 

    // Find all images 
    foreach ($html->find('img') as $element) { 
     echo $element->src . '<br>'; 
    } 

    // Find all links 
    foreach ($html->find('a') as $element) { 
     echo $element->href . '<br>'; 
    } 
    } 
} 
+0

Thx這個兄弟 – viniciusmunich