如何从以下html中提取数据? [英] How to extract data from the following html?

查看:21
本文介绍了如何从以下html中提取数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要从中提取数据的 Html 是:

The Html from where i want to extract data is:

  <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>

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

**I want to extract data just from the 1st span only.So far i already did post and get the solution but again problem persist i'm getting empty list of selenium web elements. **

代码片段是:(使用 Python-Selenium)

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')

请帮助并抱歉发布这样的问题,因为我正在学习硒.

please help and sorry for posting such question because i'm learning selenium.

推荐答案

提取文本Fiber är beställd until adressen.Tjänsterna kan du beställa när installationen är färdig. 仅从第一个跨度开始,您只需诱导 WebDriverWait 以使 文本出现在元素中,您可以使用以下解决方案:

To extract the text Fiber är beställd till adressen. Tjänsterna kan du beställa när installationen är färdig. just from the 1st span only you need to induce WebDriverWait for the text to be present in the element and you can use the following solution:

  • 进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

  • 代码行:

  • Line of code:

    #Option 1 - text_to_be_present_in_element and CSS_SELECTOR
    element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, "div.infoMessageInner>p>span.ng-binding"), "Fiber är beställd till adressen"))
    #Option 2 - text_to_be_present_in_element_value and CSS_SELECTOR
    element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element_value((By.CSS_SELECTOR, "div.infoMessageInner>p>span.ng-binding"), "Fiber är beställd till adressen"))
    #Option 3 - text_to_be_present_in_element and XPATH
    element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element((By.XPATH, "//div[@class='infoMessageInner']/p/span[@class='ng-binding']"), "Fiber är beställd till adressen"))
    #Option 4 - text_to_be_present_in_element_value and XPATH
    element = WebDriverWait(driver, 20).until(EC.text_to_be_present_in_element_value((By.XPATH, "//div[@class='infoMessageInner']/p/span[@class='ng-binding']"), "Fiber är beställd till adressen"))
    

  • 文本将是:

  • Text will be:

    Fiber är beställd till adressen. Tjänsterna kan du beställa när installationen är färdig.
    

  • 这篇关于如何从以下html中提取数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆