【问题标题】:Unable to get the proper XPath for webpage elements in import.io's crawler无法为 import.io 的爬虫中的网页元素获取正确的 XPath
【发布时间】:2015-05-28 12:16:58
【问题描述】:

我正在尝试使用来自网站 Allociné(最大的法国电影数据库)的电影数据创建一个 .csv 文件,用于一个研究项目,使用 import.io 的 Crawler,因为我的编程知识很差(目前正在攻读生态学博士学位) 并且拥有一个易于理解的工具似乎是最好的主意。

对于我需要的每一部电影:

  1. 电影的标题
  2. 发布日期(FR 中的“Date de Sortie”)
  3. 电影的类型

这里是 Allociné 电影页面的示例(适用于《星球大战 I》):http://www.allocine.fr/film/fichefilm_gen_cfilm=20754.html

起初我尝试使用 import.io 的选择工具,但它不起作用,因为有些电影有两个发行日期而不是一个(例如上面的 SW1 - 1999 年的原始发行和 2012 年的 3D 发行(“重播”))-这与爬行者搞砸了。所以我不得不使用 XPaths 来识别我需要的元素。标题工作正常(使用//title),但我对发布日期和类型有疑问。

对于发布日期,我从页面源中提取的 XPath 是:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span

我在末尾添加了/@content,以获取yyyy-MM-dd格式的日期,导致:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span/@content

但是,import.io 无法识别我需要他找到的元素。

对于流派,同样的事情,我从 Chrome 获得了这个 XPath,用于第一个流派(科幻):

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a[1]/span

我需要 import.io 来收集所有流派,所以我从 a[1] 中删除了 [1] 以获得整个 a

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a/span

也不行,import.io 返回一个空元素。

所以,任何关于它为什么不起作用的解释都将非常感激!很抱歉,如果我错过了一些显而易见的事情,正如我所说,我根本不是专家。

布莱斯

【问题讨论】:

    标签: xml xpath web-crawler import.io


    【解决方案1】:

    发布日期试试:

    //span[@itemprop="datePublished"]/@content

    这基本上意味着:找到一个具有名为“datePublished”的属性的span节点并提取名为“content”的属性

    对于类型尝试:

    //span[@itemprop="genre"]/text()

    这意味着找到一个具有名为“流派”的属性的跨度节点并提取它后面的文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多