如何使用php爬虫从网站获取div标记中包含的所有数据

如何使用php爬虫从网站获取div标记中包含的所有数据,php,html,dom,Php,Html,Dom,我有一个简单的php爬虫程序的代码,它可以从深度5的网站上获取所有html页面,但是如果我运行它来获取div标记中包含的所有数据,比如[container,main,wrapper.etc],那么它会显示意外的结果……下面是php代码:: <?php $a=$_POST['t1']; function crawl_page($url, $depth = 5) { static $seen = array(); if (isset($seen[$url]) || $depth

我有一个简单的php爬虫程序的代码,它可以从深度5的网站上获取所有html页面,但是如果我运行它来获取div标记中包含的所有数据,比如[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文件

有什么原因不只是按ID定位div

$dom->getElementById ("main");

如果我以div的id作为目标,那么我应该在foreach循环中的$href中得到什么,bcoz进一步的代码取决于$href。好的,如果我按id进行目标div,那么我应该在forech循环中做什么进一步的更改呢?我只是php的初学者,所以不要编写那么多代码,如果你可以修改,请粘贴在这里