【问题标题】:CURL Response send to custom URL PHP/LaravelCURL 响应发送到自定义 URL PHP/Laravel
【发布时间】:2020-09-17 05:30:12
【问题描述】:
    public  function amazon_curl_request($url)
{
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_HTTPHEADER => array(
        ),
    ));
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

  public function amazon(Request  $request)
{
    $url = $request->input('link');
    $parsed_link = parse_url($url);
    $url = 'https://www.amazon.com/s?k=' .$url;
    $url=str_replace(' ', '+', $url);
    $response =  $this->amazon_curl_request($url);        
    return view('FrontEnd/amazon/result_page', compact('response'));
}

这里是路线Route::get('/amazon/search', [AmazonController::class , 'amazon'])->name('search.amazon');

我需要更改网址,默认情况下它会将我重定向到这里http://localhost:8000/s?k=bag

但我需要这个 URL 来显示响应 http://localhost:8000/amazon-search/bag

这是一个 Amazon Scraping 网站。

【问题讨论】:

  • 欢迎来到 SO .. 您尝试了什么以及遇到了什么错误 .?
  • 我正在尝试从亚马逊报废,没有 URL 也可以正常工作,强制 CURL 响应将我重定向到“localhost:8000/s?k=bag”这里,“s?k=”这是亚马逊的 url 查询,但想显示结果是我的自定义网址,例如“localhost:8000/amazon-search/bag”,这里的包是搜索字符串
  • 那么不要`return $response;`这个存储在变量中并在bkade中使用来显示数据
  • 把这个问题放在这里
  • 你也可以添加你的路由器

标签: php laravel web-scraping


【解决方案1】:

使用 Http,因为您正在使用 laravel 8 参考链接 https://laravel.com/docs/8.x/http-client

use Illuminate\Support\Facades\Http;

public function amazon(Request  $request)
{
    $url = $request->input('link');
    $parsed_link = parse_url($url);
    $url = 'https://www.amazon.com/s?k=' .$url;
    $url=str_replace(' ', '+', $url);
    $response =  Http::get($url)->body();   // body() function will return html of url   

    echo $response  // as it is already html of amazon or do some datamanipulation here 
    // return view('FrontEnd/amazon/result_page', compact('response'));
}

【讨论】:

猜你喜欢
  • 2019-05-01
  • 1970-01-01
  • 2016-05-27
  • 2018-08-26
  • 1970-01-01
  • 2020-06-01
  • 2013-11-18
  • 1970-01-01
相关资源
最近更新 更多