使用Simple_HTML_Dom.php从网站抓取数据

时间:2013-07-08 16:10:08

标签: php web-scraping simple-html-dom

使用simple_html_dom.php,我正试图从朋友的网站上搜索可用的尺寸。不幸的是,我没有成功提取单个大小,因为我不明白正确的选择标准是什么。

在下面的示例中,我想提取“110”,因为它是唯一可用的大小。我尝试提取标签,但后来我想我必须包括下一个标准,它应该是element_id的值:“for” - 以“属性6”开头。任何帮助都将非常感激。

<div id="sizeSelector" class="cf">
  <div class="titleHeader cf">
    <p class="text">
      <h2>Choose a Size</h2>
      <h2 id="print-size" style="display:none;">Sizes available</h2>
      <label for="attribute76">
         <input id="attribute76" class="jshide" type="radio" value="76" name="super_attribute[144]">
110
      </label>
   </div>
</div>

1 个答案:

答案 0 :(得分:0)

您可以遍历标签并检查输入是否已禁用:

foreach ($html->find('#sizeSelector label') as $e)
{   if ( $e->find('input[disabled]') )
    {   // $e is the <label> element, $e->plaintext gets the text content
        echo "Input " . $e->plaintext . " is disabled.\n";
    }
    else
    {   echo "Input " . $e->plaintext . " is enabled.\n";
    }
}

不幸的是,尝试选择没有禁用该类的标签时,使用find('label[class!=disabled]')似乎会在没有类的情况下自动关闭所有标签。您可以查询没有类find('label[!class]')的标签,但是您可能会排除包含其他类的标签。