【问题标题】:How can I convert a string to a number in xpath to run a calculation against it?如何将字符串转换为 xpath 中的数字以对其进行计算?
【发布时间】:2019-11-06 13:38:24
【问题描述】:

目标 我正在尝试:

1) 抓取页面上的所有价格实例;

2) 查找价格计数以获取页面上的产品计数; 3) 计算平均价格。

我为什么要这样做 我想在抓取网站时将 xpath 表达式放到 Screaming Frog 中,以便将计数和平均值提取到单独的列中。

我被困在哪里 我无法计算平均 b/c 价格是字符串,而不是整数。

人为的前任 由于我无法分享我的真实前任,我通过抓取这个 Hipmunk 查询复制了这个问题:https://www.hipmunk.com/flights#f=NYC;t=SEA;d=2019-11-08;r=2019-11-10;is_search_for_business=false.

我用来获取价格的 xpath://div[@class = 'FlightPrice']

您可以从下面屏幕截图中的“结果”窗格中看到,它运行良好。

screenshot of functional xpath

是否可以将货币字符串转换为整数,以便对它们进行计算?我尝试将它包装在一个 number() 函数中,但得到了一个 NaN error。不知道是不是因为$s。

【问题讨论】:

  • 请在您的问题中发布您的示例代码(输入、您当前的尝试和预期结果)作为代码
  • 如果您使用的是 Scrapy,为什么不提取字符串并使用 float('number as a string') 进行转换?
  • 仅供参考,这也可以用 xpath 2.0 来完成,但是 AFAIK,Scrapy 只支持 xpath 1.0。
  • @michael.hor257k 我确实发布了代码和屏幕截图。

标签: xslt xpath web-scraping scrapy screen-scraping


【解决方案1】:

浮动项目或变量。把它放在下面的括号中,你可以在等式中使用它

浮动()

【讨论】:

    【解决方案2】:

    你不用 XPath 做转换,你用 XPath 提取字符串然后解析它。

    对于价格,我建议您使用price-parser

    【讨论】:

      猜你喜欢
      • 2020-01-18
      • 2021-01-21
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多