xml - 无法在 import.io 的爬虫中为网页元素获取正确的 XPath

标签 xml xpath web-crawler import.io

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

对于我需要的每部电影:

  1. 电影名称
  2. 发布日期(法国的“Date de Sortie”)
  3. 电影的类型

这是一个 Allociné 电影页面的示例(针对星球大战 I):http://www.allocine.fr/film/fichefilm_gen_cfilm=20754.html

起初我尝试使用 import.io 的选择工具,但它没有用,因为有些电影有两个发行日期而不是一个(如上面的 SW1 - 1999 年的原始发行和 2012 年的 3D 发行('reprise') -与爬行者搞砸了。所以我不得不使用 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 返回一个空元素。

因此,非常感谢任何关于它为什么不起作用的解释!很抱歉,如果我遗漏了一些明显的东西,正如我所说,我根本不是专家。

布莱斯

最佳答案

对于发布日期尝试:

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

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

对于流派尝试:

//跨度[@itemprop="流派"]/文本()

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

关于xml - 无法在 import.io 的爬虫中为网页元素获取正确的 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30506353/

相关文章:

ios - 使用 Swift 和 KissXML 创建 XML : example?

c# - C# 中的字符串连接和标记化 xpath 函数

java - 如何使用在 Java 中具有默认命名空间的 XPath 检索 XML 数据?

delphi - 爬虫url队列还是hash列表?

python - 使用Scrapy创建蜘蛛,蜘蛛生成错误

python - 如何获取 anchor 标签内的元素?

php - 使用 PHP 的 SimpleXMLElement 类查找指定元素的最佳方法是什么?

c# - 处理 XML 更改的好方法

xml - 如何将 Invoke-RestMethod 的响应转换为 XML?

javascript - 如何在带有 JavaScript 的 Selenium RC 中使用 xpath?