【发布时间】: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