当前位置: 首页 > news >正文

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~谢谢你!

相关文章:

  • 在复杂性的迷宫里寻找路标 —— 读《人月神话》有感
  • 回溯算法(2):全排列问题
  • Serving入门
  • Java 动态代理实现
  • webgl入门实例-向量在图形学中的核心作用
  • 【每日八股】复习计算机网络 Day2:TCP 断开连接时四次挥手及其相关问题
  • [Java实战经验]异常处理最佳实践
  • opencv--图像处理
  • Vue3 + TypeScript中defineEmits 类型定义解析
  • LeetCode 5:最长回文子串
  • 【java实现+4种变体完整例子】排序算法中【冒泡排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • AI写代码工具分享:Cursor 高效使用攻略与实战秘籍
  • 【图片识别分类】如何快速识别照片中的水印文字,对图片进行关键字分类,快速整理水印相机拍摄图片,基于WPF和腾讯OCR的技术实现
  • QML中的3D功能--自定义着色器开发
  • 实现Azure Synapse Analytics安全地请求企业内部API返回数据
  • Flink框架十大应用场景
  • 嵌入式软件--stm32 DAY 2
  • 为什么浮点数会搞出Infinity和NAN两种类型?浮点数的底层原理?IEEE 754标准揭秘?
  • VSCode安装与环境配置(Mac环境)
  • 【计算机视觉】CV实战项目- Face-and-Emotion-Recognition 人脸情绪识别
  • 中物联声明:反对美对华物流、海事和造船领域301调查措施
  • 特朗普:乌克兰问题谈判短期内若无进展美将不再斡旋
  • 一女子称醉酒后疑似被性侵,长沙警方通报:嫌犯邱某某已被刑拘
  • 长沙岳麓警方通报“女子疑被性侵”:正在进一步侦办
  • 碳访|储能行业将迎市场化考验,宁德时代:我们希望“卷价值”
  • 这颗“超级地球”真有生命?剑桥团队在系外行星K2-18b发现气体证据