我正在使用 PHP 的 cURL 从各种 URL 中获取一些标签信息。我的请求有时会起作用,但有时它们根本不起作用。我的代码不起作用有什么原因吗?(请注意,我也在使用 simple_html_dom):
$webpage = 'http://www.some_url.com';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $webpage);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
$str = curl_exec($curl);
curl_close($curl);
$html = '';
if( !empty($str) )
{
require_once( 'simple_html_dom.php');
$html= str_get_html($str);
$element = $html->find('h1', 0);
$webpage_name = strip_tags($element);
$item = $html->find('meta[name=description]', 0);
$description = $item->content;
}
// save $description to database
// save $webpage_name to database
对于我尝试的大约一半的 URL,描述和网页名称存储在我的数据库中,但对于另一半,它们没有存储,并且脚本只是停滞不前。也就是说,当用户向我的网站提交 URL 时,会在 URL 上传到我的网站时显示进度条。然后,进度条消失,并且 URL 显示在我的网页上,供用户在 URL 提交完成后查看。对于麻烦的 URL,进度条会消失,但链接不会出现在页面上,并且没有任何内容存储到我的数据库中。我错过了什么?