仅提供a href数据

时间:2018-11-20 13:58:18

标签: php

我正在使用simple_html_dom从另一个网站收集数据,我想知道如何仅将数据作为a元素进行一次foreach。

$url = 'example.com';
html2 = file_get_html($url);
$download2 = $html2->find('table',1);
$data['ep_table'] = $download2->outertext;

上面的代码返回以下内容。

<table style="height: 341px;">
<tbody>
<tr style="height: 31px;">
   <td style="height: 31px; width: 26px;">#</td>
   <td style="height: 31px; width: 196px;">Song</td>
   <td style="text-align: right; height: 31px; width: 82px;">Download</td>
</tr>
<tr style="height: 62px;">
   <td style="height: 62px; width: 26px;">1</td>
   <td style="height: 62px; width: 196px;">미쳐가지고 (I’m Crazy)</td>
   <td style="text-align: right;height: 62px;width: 82px;">
      <a href="http://example.com/South-Club-im-crazy/"
         target="_blank"
         rel="noopener">
       <strong>
      <button class="button_rbox" title="" type="button">
      <span class="cnt">Download</span>
      </button>
      </strong>
     </a>
   </td>
</tr>
<tr style="height: 31px;">
  <td style="height: 31px; width: 26px;">2</td>
  <td style="height: 31px; width: 196px;">Someday</td>
  <td style="text-align: right; height: 31px; width: 82px;">
     <a href="http://example.com/South-Club-someday/"
        target="_blank"
        rel="noopener">
       <strong>
        <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span>
        </button>
       </strong>
      </a>
  </td>
</tr>
<tr style="height: 93px;">
  <td style="height: 93px; width: 26px;">3</td>
  <td style="height: 93px; width: 196px;">안녕 (Hi/Bye)</td>
  <td style="text-align: right; height: 93px; width: 82px;">
     <a href="http://example.com/South-Club-hi/"
        target="_blank"
        rel="noopener">
       <strong>
       <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span>
       </button>
       </strong>
     </a>
   </td>
</tr>
<tr style="height: 31px;">
   <td style="width: 26px; height: 31px;">4</td>
   <td style="width: 196px; height: 31px;">빗방울 (Raindrop)</td>
   <td style="text-align: right; width: 82px; height: 31px;">
       <a href="http://example.com/South-Club-raindrop/"
          target="_blank" rel="noopener">
         <strong>
         <button class="button_rbox" title="" type="button">
         <span class="cnt">Download</span></button>
         </strong>
      </a>
   </td>
</tr>
</tbody>
</table>

我该如何做一个foreach,它仅搜索$data['ep_table']的html而不搜索我们正在解析的a元素的整个页面?

我试过了,没有运气。

foreach($data['ep_table']->find('a') as $track){
    print $link = $track->href; 
}

1 个答案:

答案 0 :(得分:0)

您正试图在纯文本而不是DOM对象上使用find()。您应该这样做:

$url  = 'example.com';
html2 = file_get_html($url);

foreach( $html2->find('table', 1)->find('a') as $track)
{
    echo $track->href;
}

还值得指出的是,find('table', 1)假定目标表是检索到的标记中的第二个<table>元素。