curl 抓取网页(你的PHP代码并没有出错(1)_光明网(组图) )
优采云 发布时间: 2022-03-10 17:21curl 抓取网页(你的PHP代码并没有出错(1)_光明网(组图)
)
用 curl 单独获取是可行的,但是如果你抓取一系列相同类型的 网站 会报错,把它们放到一个数组中
$linkList 分别以此类推。
function getJobsHubuNotice()
{
$curl = curl_init('http://jobs.hubu.edu.cn/List.aspx?ArticleChannelId=81');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
//内容处理
$result = strip_tags($result,'<a>');
$result = stristr($result, 'nbsp当前位置:');
$result = str_replace('nbsp当前位置:', '', $result);
$result = stristr($result, '当前1/2页',true);
$result = stristr($result, '通知公告');
$result = str_replace('通知公告</a>', '', $result);
preg_match_all('/(? 通知公告', '', $result);
$result = stristr($result, '$(document).ready',true);
$result = trim($result);
$result = str_replace("\r\n", '
', $result);
$result = preg_replace('/(\){1,}/', '
', $result);
echo $result;
echo '
';
echo "退出makePage函数";
return $result;
}
}
先使用getJobsHubuNotice()函数获取新闻链接、标题、日期,再使用makePage()函数获取内容
这是在 makePage 中打印链接的结果,使用浏览器打开链接没有问题。
您的 PHP 代码中没有错误。初步怀疑是你在请求中传入的url不正确,如下图所示:
您代码中的错误输出实际上是您获得的网页上的输出。
再次更新,我想我知道你的要求有什么问题:
你从网页得到的URL地址是:Detail.aspx?ArticleChannelId=81&ArticleId=2777,
其中&字符是&的HTML实体字符,当你输出的时候(也就是在你的截图中),它显示&,而当你去真正的请求时,它使用了下面的东西:
您只需要恢复它,或者简单地将URL中的&替换为&,然后转到请求就可以了。
再次更新:
<p>