【问题标题】:What XPATH I need to extract specific data from Edmunds website?我需要什么 XPATH 从 Edmunds 网站提取特定数据?
【发布时间】:2016-05-11 10:26:03
【问题描述】:

我正在使用 import.io 软件从 Edmunds 中提取数据...示例页面http://www.edmunds.com/bugatti/veyron-164/2009/st-101194582/features-specs/

我向 support@import.io 发送了几次电子邮件,但他们只帮助了我一次,并说没有时间和资源来帮助解决有关单个项目而不是软件本身的问题。

我使用 XPATH 成功提取了技术规范,例如 //td[contains (.,"HORSEPOWER")]/span

<td>
<label>HORSEPOWER</label>
<span> 1001 hp @ 6000 rpm</span>
</td>

但是我不知道如何提取

  • 代码之间的特征,并且没有被具有特定标签的另一个代码包含,但上面有特定的

    几行。 XPATH //li 确实提取了单个列中的所有特征以及我不需要的其他数据。

    请告诉我一个 XPATH,它按单个类别、舒适、娱乐、安全功能等提取特征。我需要为每个特征类别将特征放在一个列中。

    <h3 id="safety_feat" class="safety-feat">Safety Features</h3>
    <div class="hr thick"></div>
    <table class="items only-values" data-selenium="safety">
    <tr>
    <td>
    <ul class="items">
    <li><p>4-wheel ABS</p></li>
    </ul>
    </td>
    

    另一件可以为我的数据库增加好处的事情是提取颜色名称和 RGB 值,这可能吗?

    <span style="display: block; background-color:rgb(255,255,255);">
    <span style="display: block;" class="clrtxt">COLOR NAME</span>
    
  • 【问题讨论】:

      标签: xpath extract import.io


      【解决方案1】:

      我设法通过使用以下方法获取背景颜色值:

      //*[包含(@id,'exterior')]/span[2]/@style

      它返回样式中的所有内容,但您可以使用正则表达式来删除不需要的东西!

      希望对你有帮助

      【讨论】:

      • 您的 XPATH 运行良好,可以根据需要分别提取外部和内部颜色。我不知道如何使用正则表达式,但我使用 Excel 查找/替换来清理不需要的东西。
      • 嘿,未来,您可以使用以下正则表达式从括号 (?
      【解决方案2】:

      要提取类别的所有规范,您可以尝试(在示例中是前排座位,如果您想获得其他人,只需更改 'table[@class='items only-values']' 数组计数

      //div[@id='features-pod']//table[@class='items only-values'][1]/tbody/tr/td/ul[@class='items']/ li/p

      要提取颜色名称,您可以使用以下内容:

      //span[@class='clrtxt']

      我一直在尝试提取背景颜色值,但对我来说这是不可能的!

      我只是在网站上使用 Chrome 中的 XPATH 选择器,稍微补一下,然后在 import.io 上尝试一下……它通常可以工作!

      【讨论】:

      • 这是一个非常复杂的 XPATH,它可以提取前排座椅,但我不明白要更改什么来提取其他座椅。颜色名称的另一个 XPATH 确实提取了外部和内部颜色,有没有办法分别提取它们?
      • 嗨!这就是为什么您必须使用工具来获取网站的 XPATH。您可以使用 Firebug wikihow.com/Find-XPath-Using-Firebug,或使用 XPATH Helper for Chrome chrome.google.com/webstore/detail/xpath-helper/…。我真的鼓励您花一些时间学习 XPATH 的工作原理。这个社区是为您提供工具,而不是解决方案!
      • Firebug 的作用与 Chrome 中的 Inspect 元素相同。从那里复制的 XPATH 是基于页面上的位置而不是标签,如果某些标签值在页面之间的位置不同,它们的 XPATH 就没有用了! XPATH Helper 扩展只显示由各种 XPATH 提取的数据(我已经在 import.io 中做过),它并不能帮助我理解我需要什么 XPATH。
      • 使用 import.io 我使用了 //span[@class='clrtxt'] 并尝试在上面的回复中包含 Alex 给出的 @id,'exterior',但任何将它们结合起来的尝试都会导致在没有数据被提取。请帮助我使用 XPATH 来分别提取外部和内部汽车颜色。
      • 如果看到对象,就无法将其分开 米色金色金属色/黑色蓝色金属色。您最好的选择是使用正则表达式。如果您在 2 列中提取该字符串,并在第一列 / 之前(以及第二列之后)获取所有内容,您将能够填充它。但它是在同一个元素上,如果不进行一些处理,你无法将它放在 2 件上。
      【解决方案3】:

      这是一种可能的 XPath,例如,用于提取“屋顶和玻璃”特征:

      //div[@class='feature-spec box']
      /*[self::h3 or self::h4]
        [contains(.,'Roof and Glass')]
      /following-sibling::table[1]
      //li/p
      

      【讨论】:

      • 这是一个非常复杂的 XPATH,它可以工作,谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多