我有一个简单的PHP抓取工具的代码,可以从深入5的网站获取所有html页面但是,如果我运行它来获取div标签中包含的所有数据,其id为[container,main ,wrapper.etc]然后它显示意想不到的结果......继承人的PHP代码::
<?php
$a=$_POST['t1'];
function crawl_page($url, $depth = 5)
{
static $seen = array();
if (isset($seen[$url]) || $depth === 0) {
return;
}
$seen[$url] = true;
$dom = new DOMDocument('1.0');
@$dom->loadHTMLFile($url);
$anchors = $dom->getElementsByTagName('div');
foreach ($anchors as $element) {
$href = $element->getAttribute('id');
//$href = $element->find('div[id=main]', 0)->plaintext;
if (0 !== strpos($href, 'main')) {
$host = "http://".parse_url($url,PHP_URL_USER);
$href = $host. '/' . ltrim($href, '/');
}
crawl_page($href, $depth - 1);
}
echo "New Page:<br /> ";
echo "URL:",$url,PHP_EOL,"<br />","CONTENT:",PHP_EOL,$dom->saveHTML(),PHP_EOL,PHP_EOL," <br /> <br />";
}
crawl_page($a, 5);
?>
这段代码适用于锚标签,但我希望这只适用于div标签,它只取出其中包含的所有数据。我希望这个用于我的项目,如果有人做了那个然后帮助....... html代码被写下来
<HTML>
<head>
<title></title>
</head>
<body>
<form method="POST" action="crawler1edit[2].php">
Enter Url:-<input type="text" name="t1">
<input type="submit" value="send" name="s1">
</form>
</body>
</HTML>
in action属性crawler1edit [2] .php是包含在顶部写的php代码的php文件
答案 0 :(得分:0)
你有没有理由不按ID定位div?
$dom->getElementById ("main");