【问题标题】:Scrape dynamic flight information抓取动态航班信息
【发布时间】:2014-09-01 19:37:10
【问题描述】:

我想删除前 5 个(动态)到达航班和出发航班(schiphol.nl 主页上的另一个标签)。对于我输入的到达航班:

url = "www.schiphol.nl"
doc <- htmlParse(url)
xpathSApply(doc, "//ul[@class='flights']//tr", xmlValue)

给我结果 NULL 请帮助我在一个 DF 中显示 5 个显示的到达航班 + 另一个 DF 中的 5 个出发航班,甚至更好地全部放在一个 DF 中。谢谢

在 HTML 结构中,我看到我需要的到达航班的非结构化列表具有以下规格:

<ul class="flights" id="f238226">
 <li id="tabS1" class="arrivals selected">
  <a href="/Reizigers/Vluchttijden/Aankomsttijden.htm" onclick="return selecttabA(1);">Aankomst</a>
 </li>
 <li id="tabS2" class="departures">
  <a href="/Reizigers/Vluchttijden/Vertrektijden.htm" onclick="return selecttabA(2);">Vertrek</a>
 </li>
</ul>
<li id="tabS1" class="arrivals selected"><a

<div id="tab1">
<h2>Aankomst</h2>
<form action="/Reizigers/Vluchttijden/Aankomsttijden.htm"  method="get"  name="adv_flight_search" autocomplete="off">
</form>
<table>
<thead>
    <tr>
      <th>Schema</th>
      <th>Vlucht</th>
          <th>Herkomst</th>
      <th>Opmerkingen</th>
    </tr>
</thead>
<tbody>
              <tr class="mark">
              <td>13:15</td>
              <td>AF 8387</td>
              <td>Quito</td>
            <td>Geland</td>
</tbody>
</table> 

【问题讨论】:

    标签: html xpath web-scraping


    【解决方案1】:

    您当前的 XPath 表达式:

    "//ul[@class='flights']//tr"
    

    正在寻找 ul 具有属性 class 其值为“航班”的元素并选择其所有后代元素 tr

    然而,您所追求的似乎不在tr 元素内,这也意味着数据在表内,而是在无序列表中。试试下面的表达式。

    "//ul[@class='flights']/li"
    

    如果这没有帮助,您可能必须透露您想要查找的确切内容并显示更多 HTML。

    【讨论】:

    • @Mathias.I 提供了更多 HTML 代码。我想抓取您在 schiphol.nl 上的轮播中看到的动态航班信息。我需要的信息在 HTML 表中的标准单元格中。我想要到达的航班,也想要离开的航班(如您所见,它们位于不同的标签后面。
    • 。希望我的 Q 现在更清楚了。thnx
  • @Diederik 恐怕这无济于事。我仍然没有在您的 HTML 中看到 5 个“到达航班”——主要是因为我不知道您所说的“到达航班”是什么意思。只有一张表,有两个td 元素可以作为航班目的地。你是这个意思吗?这个无序列表和它后面的表有什么关系?
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签