PHP实现简单的爬虫功能
<?php// 目标URL
$url = 'https://example.com';// 初始化cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MyPHPCrawler/1.0)');
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间// 执行请求并获取HTML内容
$html = curl_exec($ch);// 检查请求是否成功
if (curl_errno($ch)) {echo 'cURL Error: ' . curl_error($ch);curl_close($ch);exit;
}
curl_close($ch);// 解析HTML内容
$dom = new DOMDocument();
@$dom->loadHTML($html); // 使用@抑制HTML解析警告
$xpath = new DOMXPath($dom);// 提取页面标题
$titleNode = $xpath->query('//title')->item(0);
$title = $titleNode ? $titleNode->nodeValue : 'No Title';
echo "Page Title: $title\n";// 提取所有链接
$links = $xpath->query('//a/@href');
echo "Found Links:\n";
foreach ($links as $link) {echo $link->nodeValue . "\n";
}?>
PHP可以实现基本的爬虫功能,但对于复杂的抓取任务(如处理JavaScript渲染的内容、登录验证、反爬机制等),可能需要结合其他工具或语言。
我的个人PHP项目:
PHP全文检索引擎 WindSearch: https://github.com/rock365/windsearch
请帮我点个star~谢谢你!