Perl:从对象模型获取innerHTML,而不是“源”

时间:2013-04-22 20:20:23

标签: perl innerhtml

我正在使用IO::Allio($url)函数处理Perl的网页。

我正在处理的页面表面上有很好的URL。 e.g。

http://www.forbes.com/billionaires/list/#page:15_sort:0_direction:asc_search:_filter:All%20industries_filter:All%20countries_filter:All%20states

请注意#page:15_

当我查看源代码或打印出来自io()的源代码返回时,我看到网站第1页上显示的名称,例如,

<!-- Start: list_row -->
<tr>
  <td class="rank">1</td>
  <td class="company">
    <a href="/profile/carlos-slim-helu/">
      <img src="http://i.forbesimg.com/media/lists/people/carlos-slim-helu_50x50.jpg" alt="">
      <h3>Carlos Slim Helu & family</h3>
    </a>
  </td>
  <td class="worth">$73 B</td>
  <td>73</td>
  <td>telecom</td>
  <td>Mexico</td>
</tr>

但是,如果我在浏览器中的开发者工具中打开页面并查看对象模型,我会在列表中看到我期望在第15页看到的人的条目,例如,

<TR>
  <TD class=rank>1342</TD>
  <TD class=company><A href="/profile/park-hyeon-joo/">
    <IMG alt="" src="http://i.forbesimg.com/media/lists/people/park-hyeon-joo_50x50.jpg"> 
    <H3>Park Hyeon-Joo</H3></A>
  </TD>
  <TD class=worth>$1 B</TD>
  <TD>54</TD>
  <TD>Mirae</TD>
  <TD>South Korea</TD>
</TR>

我可以让Perl打开页面给我正确的内容吗?

1 个答案:

答案 0 :(得分:0)

我做了一点点。该表的数据实际上是从此网址加载的:http://www.forbes.com/ajax/load_list/?type=person&uri=billionaires&year=2013

根据您实际尝试完成的内容,可能更容易获取并解析它(它是JSON格式化的)。