保存来自多个静态网站的特定Div的内容,并将Img URL替换为本地副本

时间:2014-11-09 20:57:31

标签: php html dom domdocument

我的客户拥有数百个简单的单页静态网站。它们是各种营销任务的登陆页面。它们都使用相同的相同布局 - 只是一个带有页眉和页脚的简单的两列站点。

我想在每个目标网页上复制几个特定div的内容,然后我会将它们用于流行的数据库,以便我可以使用新的后端重建它。

基本上有一个"主要" div和" sidebar" div和我需要完全按原样复制HTML,但将图像URL替换为本地托管的副本。

我能够使用以下方法为给定域创建所有图像URL的数组:



$url="http://example.com";
$html = file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = $doc->getElementsByTagName('img');
foreach ($tags as $tag) {
// save image to local server
}




我能够使用这种方法捕获主div的内容:



$maindiv = $doc->getElementById('main');
echo $doc->saveHTML($maindiv);




似乎运行良好,但它没有包含图像的任何内部HTML。基本上这个div包含一个段落,后跟一个HTML项目符号列表,后跟一个或两个图像,也许是最后一个段落。这段代码抓住了文本和项目符号列表但没有抓取html或图像。

有更好的方法吗?如果我能弄清楚如何迭代这些数据并获取这些div的内容,我可以节省大量的手动时间。

0 个答案:

没有答案