如何使用 Goutte 抓取 laravel 5.2?
How to scrape in laravel 5.2 using Goutte?
我是 Laravel 5.2 的新手,我想抓取网页。我开始知道可以使用 Goutte 来完成。而且不知道怎么用。
我已经安装了Laravel和Goutte,但是如何使用呢?如何设置Controller、route以及所有需要的东西?
我找到了答案。
我只是将 url 添加到路由并创建了控制器
Route::resource('scrape','WebScraperController@index');
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>';
}
}
}
我是 Laravel 5.2 的新手,我想抓取网页。我开始知道可以使用 Goutte 来完成。而且不知道怎么用。
我已经安装了Laravel和Goutte,但是如何使用呢?如何设置Controller、route以及所有需要的东西?
我找到了答案。 我只是将 url 添加到路由并创建了控制器
Route::resource('scrape','WebScraperController@index');
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>';
}
}
}