如何从没有xpath的元素中提取文本

Mim*_*ung -1 python selenium xpath web-scraping

我正试图在食品配送网站上为每个餐馆的网上刮取美元符号评级,但是,没有可用的xpath.

<!-- react-text: 2108 -->
"$$"
<!-- /react-text -->
Run Code Online (Sandbox Code Playgroud)

以上代码是我查看网站时用于美元评级的代码.我尝试过使用上面的直线:

    <i class="icon-bullet--small">·</i>
Run Code Online (Sandbox Code Playgroud)

但是,这会输出期间,因为它不是美元评级.我也尝试过使用:

    cost = ['//li[{}]/a/div[2]/p[2]/!'.format(x) for x in range(1, 999)]
Run Code Online (Sandbox Code Playgroud)

以及在xpath中使用"! - "和"react"和"react-text",但它们都不起作用.有关如何处理此问题的任何建议?

kjh*_*hes 5

这个XPath,

//comment()[normalize-space() = "react-text: 2108"]/following-sibling::text()
Run Code Online (Sandbox Code Playgroud)

将在目标评论后立即选择文本节点,返回

"$$"
Run Code Online (Sandbox Code Playgroud)

按照要求.


重要提示: @DebanjanB已经帮助指出包含的注释react-text: 2108是一个React指令,Selenium除非将内容提取为,否则不会看到page_source.谢谢,Debanjan!

  • @kjhughes`alid-text:2108`表示它是一个反应元素(动态生成).除非提取为"page_source",否则Selenium将无法识别/与此内容交互 (2认同)