Php爬虫从2 htmls读取所有数据

时间:2016-12-22 07:48:20

标签: php web-crawler

如何从包含2个html标记的页面中使用抓取工具读取所有数据,例如:

<html>
<body>
text text text
</body>
</html>



text2 text2 text2 text
</body>
</html>

我需要替换第一个关闭的html和body标签,然后读取所有数据。我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果之后还有一对相同的标签,您可以使用正则表达式替换</body></html>的第一个外观:

// https://regex101.com/r/nVuN8S/1
$regex = '/(?<replace><\/body>\s*<\/html>)(?=(?:.|\s)*<\/body>\s*<\/html>)/';
$new_html = preg_replace($regex, '', $html);

在这里,您可以查找以{0}}和</body>分隔的任意数量的空格字符(例如换行符号)。然后使用正向前瞻来检查它们后面是否包含任意数量的符号,包括空格,以及后面的其他</html></body>标记。

阅读&#34;所有数据&#34; (假设它表示</html>标签之间的所有内容),您可以使用另一个正则表达式E.g:

<body>

当然,您可以使用几种不同的方法来获取数据:简单的字符串操作(删除// https://regex101.com/r/nVuN8S/2 $regex = '/<body>(?<data>(?:.|\s)+)<\/body>'/; 之前和<body>之后的文本,以及标记本身),DOM文档功能等。