0

所以,我的问题是,当我提取数据时,页面上有几个条目,因为没有与之关联的链接,它们没有被选中:

为了更好地解释这里是hxs.select获取几乎所有数据的语句:

 opening = hxs.select('//div[@id="body"]/div/table/tr/td/table/tr[2]/td/table[2]/tr/td[7]/font/a/text()').extract()

这个声明得到了除了 3 个开场电影日期之外的所有日期。正如我所提到的,这三个缺失的日期没有与之关联的链接,实际上可以在以下位置找到:

 hxs.select('//div[@id="body"]/div/table/tr/td/table/tr[2]/td/table[2]/tr/td[7]/font/text()').extract()

*注意:最后没有/a找到。

我只想添加一个附加语句来获取这些信息,但我需要按顺序排列所有信息。我也有获得电影标题和总收入的报表。然后我获取这些语句并遍历它们以将它们与它们所属的位置配对 - 如果我添加另一个语句来单独处理它们,我将无法执行此操作。有什么建议么?

::::Data::::: 这是我要获取BoxOfficeMojo的数据的 url

快速说明:如果您使用 Firebug 查看 xpath,它会添加tbody实际上不存在的内容(它会将其添加进去)。

以下是正常的开放日期:

<td bgcolor="#ffffff" align="right">
   <font size="2">
      <a href="/schedule/?view=bydate&release=theatrical&date=2010-06-11&p=.htm">6/11/2010</a>
   </font>
</td>

以下是“问题”开放日期之一的样子:

<td bgcolor="#f4f4ff" align="right">
  <font size="2">11/20/1981</font>
</td>
4

1 回答 1

1

<font/>只需使用 descendant-or-self-axis step 选择该元素内的所有文本节点//

//div[@id="body"]/div/table/tr/td/table/tr[2]/td/table[2]/tr/td[7]/font//text()
于 2013-08-04T23:03:25.480 回答