php - 在 PHP 中抓取 HTML 注释

标签 php html parsing screen-scraping html-content-extraction

我一直在四处寻找,但尚未找到解决方案。我正在尝试抓取 HTML 文档并获取两条评论之间的文本,但到目前为止还无法成功完成此操作。

我正在使用 PHP 并多次尝试这里推荐的 PHP 简单 DOM 解析器,但似乎无法让它执行我想要的操作。

这是我希望解析的(部分)页面:

<div class="class">
  <!-- blah -->
    text
  <!-- end blah -->

  Text I want

  <!-- blah -->
    text
  <!-- end blah -->
</div>

谢谢

最佳答案

假设每个评论都不同(即“blah”在第一部分和第二部分中不同),您可以使用一些简单的 strpos 来获取它们之间的所有内容。 不需要正则表达式。

$startStr = '<!-- end blah1 -->';
$endStr = '<!-- start blah2 -->';

$startPos = strpos($HTML, $startStr) + strlen($startStr);
$endPos = strpos($HTML, $endStr );

$textYouWant = substr($HTML, $startPos, $endPos-$startPos);

如果两组注释 相同,您需要修改它以找到第二个“blah”,使用 strposoffset 参数

关于php - 在 PHP 中抓取 HTML 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1332590/

相关文章:

php - 清理 HTML 格式的内容以便在 Flash 中显示?

parsing - Scala组合器解析器,>>是什么意思?

Python 从 URL 字符串中解析单词

Javascript JSON.parse 字符串 onclick 内联

javascript - 使用 PHP 的 MySQL 查询未返回预期数据

php - session 变量未发送到下一页

javascript - 如何将事件监听器添加到由 javascript 对象模型生成的 HTML

php - 是否可以从 PDO 准备语句中获取参数名称

javascript - jQuery AJAX - 将额外的键/值对推送到序列化的 $_POST 数组中

javascript - 我该怎么做才能让我无法选择我的选择?