【发布时间】:2021-07-10 18:41:58
【问题描述】:
我是数据抓取的新手,我正在处理标题抓取的 url,实际上我想编写一个函数,将 url/link 作为 request,作为回报,我得到 <title> </title>、og:title、@ 987654328@等全部meta property
我正在尝试使用此功能仅抓取标题
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*
* @throws ValidationException
*/
public function getTitle(Request $request)
{
$this->validate($request, [
'link' => 'required',
]);
$link = $request->input('link');
$str = @file_get_contents($link);
if(strlen($str)>0){
$str = trim(preg_replace('/\s+/', ' ', $str));
preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title);
$result = $title[1];
}
return Response::json([
'message' => 'Get title',
'data' => $result,
], \Symfony\Component\HttpFoundation\Response::HTTP_OK);
}
路线
Route::post('request-title', 'BuyShipRequestController@getTitle');
示例我在输入字段中的要求:
以及我想要回复的内容
<title>Amazon.com: Seagate Portable 2TB External Hard Drive Portable HDD – USB 3.0 for PC, Mac, PS4, & Xbox - 1-Year Rescue Service (STGX2000400): Computers & Accessories</title>
和
<meta name="description"/> , <meta name="title"/>, <meta name="keywords" /> , link
作为回报,我只想要那些元属性 content 或 value
【问题讨论】:
-
这能回答你的问题吗? How to parse HTML in PHP? 不清楚你的问题是什么。你能描述一下
getTitle()目前做错了什么吗?你在哪里需要帮助?请参阅stackoverflow.com/help/how-to-ask 了解更多信息。 -
不,我想要任何链接,任何网络链接来获取标题和所有元属性
-
getTitle()不正确它只返回任何链接的标题有时它没有返回任何<title></title>我想要所有元属性以及link和title -
我需要帮助找到带有
title和link的任何链接的元属性content -
"有 PHP 函数吗?"不。相反,就像其他人所说的那样,您必须解析 HTML。
标签: php laravel laravel-5 web-scraping metadata