在数据scrape / output中排除图像(php)

时间:2017-07-02 23:01:01

标签: php xpath

非常新的PHP,但偶然发现下面的一些不错的编码,它从给定的URL获取所有内容,并使用特定的标记作为标识符。但问题是,我喜欢它输出的文本,以及它保留原始URL链接的事实,如果单击文本,但它也打印出一些图像。我想摆脱这些图像。 IGNORES图像中是否有可以包含在本文中的内容?非常感谢,任何帮助。上次我发布这个帖子时,我似乎因某种原因而感到非常悲伤。

如果我以某种方式冒犯了任何人,我很抱歉。我只是看看能不能得到任何帮助。我没有要求,甚至不期待任何人的任何事情。只要看看我能得到什么帮助,如果有的话。不确定为什么以前人们不高兴,希望它不再发生。我绝对不打算让stackoverflow社区感到不安,我非常感激并且通过php和学习php帮助了我。

我试过的是这个,但它并没有影响图像,因为显然我做错了。我不确定我的错误。

$content = preg_replace("/<img[^>]+\>/i", "(image) ", $content); 

原始代码:

<?php
// news
$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;


$doc->strictErrorChecking = false;
$doc->recover = true;

$doc->loadHTMLFile('https:/_________/');

$xpath = new DOMXPath($doc);

$query = "//ul[@class='hfwmm-list hfwmm-4uphp-list hfwmm-light-list']//a";

$entries = $xpath->query($query);
foreach ($entries as $entry) {
$oldHref = (string)$entry->getAttribute("href");
$entry->setAttribute("href", "http://__________.com".$oldHref);
$newdoc = new DOMDocument();
$cloned = $entry->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
 echo $newdoc->saveHTML();
}

 ?>

1 个答案:

答案 0 :(得分:1)

尝试如下查询:

$query = "//ul[@class='hfwmm-list hfwmm-4uphp-list hfwmm-light-list']//a[not(img)]";

所有<a>代码都会排除<img>代码之外的代码。