如何抓取SimpleHTMLDom返回的网站?

时间:2012-07-07 17:21:00

标签: php html dom

我使用简单的HTML Dom工作,但现在我希望它开始抓取它返回的网址,而不抓取它已经抓取的网址。我怎么能用PHP / MySQL / HTML做到这一点?

<?php 
    include "/simple_html_dom.php";
    $target_url = "http://www.daparadise.com/";
    $html = new simple_html_dom();
    $html->load_file($target_url);
    foreach($html->find('a') as $link){
        echo $href->href."<br />";
    }
    $html -> clear();
?>

我查了一下,但我似乎找不到任何关于搜索它返回的结果的信息。

1 个答案:

答案 0 :(得分:0)

您是否列出了特定网页的图片?你的代码做到了。而且它没有爬行。对于抓取,您通常会查找<a>标记,获取src属性,将其推送到堆栈或队列,然后进一步抓取。


总体思路:

  • queue = array($ curPage); //或使用Stack for Depth first search;你可以在圈子(周期)中跑步
  • 虽然队列不为空:#或任何更好的条件..
    • 弹出第一个元素。获取页面的URL。
    • 检查此页面中是否存在该页面;如果是这样:
      • (继续下一次迭代)//避免循环。
    • 使用您的DOM解析器解析此页面。
    • 从此页面抓取您想要的任何详细信息并将其存储到您的数据库
    • 查找所有<a>代码。对于每个<a>标记,请执行以下操作:
      • 获取src属性
      • src属性推送到队列。
    • (继续)