【问题标题】:xPath Help - Selecting a specific word within a stringxPath 帮助 - 在字符串中选择特定单词
【发布时间】:2015-09-27 21:08:15
【问题描述】:

我希望使用 xPath 提取字符串的一部分。

完整的字符串 -

信息类(非小说类),1,303 字,S 级(3 级)

HTML 代码:

<div class="bookInfo">
    Informational (nonfiction),
1,303 words,
Level S  (Grade 3)
</div>

我希望从这些字符串中提取单词的数量,即 - 1,303 words 在这种情况下

这个字符串的 xPath 看起来像

//*[@id="contentarea-inner"]/div[3]/div[2]/div

有问题的网页 - https://www.readinga-z.com/books/leveled-books/book/?id=820

请告知我如何修改 xPath 以便仅从页面中提取字数。我有几千页可以从中获取此信息

谢谢

【问题讨论】:

    标签: xml xpath web-scraping


    【解决方案1】:

    基本上你需要 xpath 和正则表达式:

    1. 通过 xPath 获取 div 节点的文本(参见 Shubham Jain 的代码)
    2. 对文本应用正则表达式;例如。这个:\s[,\d]+(?= words)。请参阅文本节点上的regex's work

    【讨论】:

      【解决方案2】:

      你可以在java中使用split函数实现同样的效果

      使用代码:-

      String text= driver.findElement(By.xpath("//*[@id='contentarea-inner']/div[3]/div[2]/div")).getText();
      String count1 = text.split(",")[1];
      String count2 = text.split(",")[2];
      String count = count1 + count2;
      System.out.println(count);
      

      如果仍然遇到任何问题,请回复我 :)

      【讨论】:

      • 谢谢 Subham - 请告诉我 xPath,通过它我可以得到那个字符串上的单词数。我需要在应用程序上使用 xPath 来提取编号。这些页面的单词。我不能为此使用 Java 代码。谢谢
      • @ShubhamJain,由于您使用test.split(','),因此结果可能是错误的,因为文本类似于..., 1,303 words,,数字内带有逗号!
      • @IgorSavinkin -> 是的,你是绝对正确的......谢谢你指出......我已经做出了相应的改变
      • @pb_ng -> 我担心没有使用 xpath 提取/返回特定字符串的机制 ...
      • @pb_ng,你是对的:没有使用 xpath 提取/返回特定字符串的机制 - xPath 仅用于遍历 DOM 节点。
      猜你喜欢
      • 2015-06-22
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2011-01-16
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多