首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从以下html中提取数据?

如何从以下html中提取数据?
EN

Stack Overflow用户
提问于 2018-06-18 09:47:18
回答 3查看 232关注 0票数 3

我想从其中提取数据的Html是:

代码语言:javascript
运行
复制
  <div class="infoMessageInner">
    <p>
      <span ng-bind-html="servicesCtrl.texts.addressInfo" class="ng-binding">
        Fiber är beställd till adressen. Tjänsterna kan du beställa när installationen är färdig.
      </span>
      <span ng-show="servicesCtrl.address.status === 'Orderable'" class="ng-hide">
        <a ng-click="servicesCtrl.preScrollToVerticalPosition('checkout', 'checkout', '/checkoutFiber', undefined, 'Checkout fiber')">Till&nbsp;fiberbeställningen
        </a>
      </span>
      <span ng-show="servicesCtrl.address.status === 'Inquireable'" class="ng-hide">
        <a ng-click="servicesCtrl.preScrollToVerticalPosition('checkout', 'checkout', '/inquiry', undefined, 'Inquiry')">Till&nbsp;intresseanmälan</a>
      </span>
    </p>
  </div>

**我只想从第一个跨度的only.So中提取数据,我已经发布并得到了解决方案,但是问题仍然存在,我得到了selenium web元素的空列表。**

代码片段是:(使用Python)

代码语言:javascript
运行
复制
driver.find_elements_by_css_selector('div.infoMessageInner > p')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div.infoMessageInner > p')))
data = driver.find_elements_by_css_selector('div.infoMessageInner > p')

请帮助和抱歉张贴这样的问题,因为我正在学习硒。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-18 09:54:13

提取文本纤维最佳lld直到adressen。仅从第一个跨度开始,您只需要将文本导入元素中,您可以使用以下解决方案:

  • 进口: 从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC
  • 代码行: #选项1- text_to_be_present_in_element和CSS_SELECTOR element = WebDriverWait(driver,DIV.infoMessageCore>p>span.ng-binding),"Fiber最佳lld直到adressen")) #选项2- text_to_be_present_in_element_value和CSS_SELECTOR element = WebDriverWait(driver,20).until(EC.text_to_be_present_in_element_value((By.CSS_SELECTOR,)))#选项3- text_to_be_present_in_element和XPATH元素=WebDriverWait(驱动程序,纤维“纤维最佳lld直到adressen”)#选项4- text_to_be_present_in_element_value和XPATH元素=WebDriverWait(驱动程序,20).until(EC.text_to_be_present_in_element_value((By.XPATH,"//div@class='infoMessageInner'/p/span@class='ng-binding'"),“纤维最佳纤维直到adressen"))
  • 案文如下: 纤维最佳lld,直到adressen。Tj nsterna kan n r installationen r f rdig
票数 1
EN

Stack Overflow用户

发布于 2018-06-18 10:00:37

如果html中没有<span>元素,则只需使用driver.find_element_by_tag_name('span').text找到第一个span元素。

票数 0
EN

Stack Overflow用户

发布于 2018-06-18 10:10:41

您可以在CSS选择器中使用下面的绑定

代码语言:javascript
运行
复制
.ng-binding

编辑:

代码语言:javascript
运行
复制
driver.find_element_by_css_selector('.ng-binding').text
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50906710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档