$ch = curl_init(); // 初始化cURL
$url = "http://example.com"; // 目标网址
curl_setopt($ch, CURLOPT_URL, $url); // 设置请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回内容而不是直接输出
$response = curl_exec($ch); // 执行请求
curl_close($ch); // 关闭会话
echo $response; // 输出网页内容
这段代码完成了从远程服务器拉取页面HTML的基本过程。
$response = "<title>Example Title</title>"; // 假设的HTML内容
$pattern = '/<title>(.*?)<\/title>/'; // 匹配<title>内容
preg_match($pattern, $response, $matches); // 执行匹配
$title = $matches[1]; // 获取标题
echo $title; // 输出:Example Title
这种方式适合结构较简单或对性能要求较高的场景。
$response = "<html><body>
<a href='http://example.com'>Link 1</a>
<a href='http://example.org'>Link 2</a>
</body></html>"; // 网页HTML内容
$dom = new DOMDocument();
libxml_use_internal_errors(true); // 防止HTML解析报错
$dom->loadHTML($response); // 加载HTML内容
$links = $dom->getElementsByTagName('a'); // 获取所有a标签
foreach ($links as $link) {
echo $link->getAttribute('href') . "<br>"; // 输出链接地址
}
相比正则匹配,DOMDocument对不规范HTML的容错性更强,推荐在结构复杂页面中使用。
新闻聚合与媒体监控
商品价格对比与电商分析
实时天气与交通信息抓取
金融行情与股票数据采集
通过灵活组合网络请求与HTML解析技术,PHP开发者可以构建各种自动化数据提取工具。